debug-on-quit和(debug)除了设置debug-on-error或调用debug-on-entry之外,还有两种启动debug的方法。
通过将变量debug-on-quit设置为t,你可以在键入C-g(keyboard-quit)时随时启动debug。这对于调试无限循环非常有用。
或者,你可以在代码中插入一行,如下所示,以在想要启动调试器的地方开始(debug):
(defun triangle-bugged (number)
"返回从1累加到NUMBER的数字的总和。"
(let ((total 0))
(while (> number 0)
(setq total (+ total number))
(debug) ; 启动调试器。
(setq number (1- number))) ; 错误出现在这里。
total))
debug函数的详细信息在Lisp 调试器 in GNU Emacs Lisp参考手册中有描述。