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