edebug-trace に nil 以外の値をセットする。
Edebug Options (GNU Emacs Lisp Reference Manual)
(setq edebug-trace t) ;; <- これを評価する (C-M-x or カーソルを末尾に置いて C-x C-e) (defun fact (n) (if (zerop n) 1 (* n (fact (1- n))))) ;; <- edebug を有効にして評価する (C-u C-M-x) (fact 5) ;; <- 評価する (C-M-x or カーソルを末尾に置いて C-x C-e
*edebug-trace* というバッファが開き、 edebug によるデバッガモードが開始する。c を押してとりあえず関数を実行させて(== トレースをすべて展開出力させて)からじっくり眺める。
{ fact args: (5)
:{ fact args: (4)
::{ fact args: (3)
:::{ fact args: (2)
::::{ fact args: (1)
:::::{ fact args: (0)
:::::} fact result: 1
::::} fact result: 1
:::} fact result: 2
::} fact result: 6
:} fact result: 24
} fact result: 120