12 除錯
除錯(Debug) ,只能用於冒號定義的詞;低階(code)定義的詞無效
DEBUG 是將欲除錯的詞,轉換其NEXT 為 DEBNEXT,變成循跡狀態.
UNBUG 是將除錯循跡的詞,轉換其 DEBNEX 回為TNEXT,恢復成正常狀態.
除錯的動作開始以後,它會做一步,就停下來,
等我們按任何一鍵,才再做下一步.
如果要自動連續分解可以按C鍵.
如果我們要回到符式,我們就按F鍵.
如果除錯到一半,問題已經發現了,就可按Q鍵,這樣就又將DEBNEXT換回NEXT,恢復正常的狀態.
以下例說明
: SQUARE DUP * ; <cr>
DEBUG SQUARE <cr>
5 SQUARE <cr>
: SQUARE 5
DUP 5 5 <cr>
* 25 <cr>
UNNEST ok
UNBUG SQUARE
5 SQUARE <cr>
. <cr> 25 ok