17.3 debug-on-quit(debug)

除了设置 debug-on-error 或调用 debug-on-entry,还有另外两种方式可以启动 debug

将变量 debug-on-quit 设置为 t 后,每当你按 C-gkeyboard-quit)时都会启动调试器。这对调试死循环非常有用。

或者,你也可以在代码中希望启动调试器的位置插入一行 (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 Lisp Debugger in The GNU Emacs Lisp Reference Manual