debug-on-quit と (debug) ¶debug-on-error を設定するか debug-on-entry を呼び出す以外に、debug
を開始する方法は他に2通りあります。
変数 debug-on-quit に t
を代入することで、C-g (keyboard-quit) と入力するたびに debug
を開始できます。これは無限ループのデバッグに便利です。
あるいは、次のように、デバッガを開始させたい箇所のコードに (debug)
という行を挿入することもできます。
(defun triangle-bugged (number)
"Return sum of numbers 1 through NUMBER inclusive."
(let ((total 0))
(while (> number 0)
(setq total (+ total number))
(debug) ; Start debugger.
(setq number (1= number))) ; Error here.
total))
debug 関数については、The GNU Emacs
Lisp Reference Manual の The
Lisp Debugger で詳しく解説されています。