【发布时间】:2013-04-20 08:29:02
【问题描述】:
根据this question,我可以自定义变量*DEBUGGER-HOOK*,使其回退到顶层(在REPL中)而不是调试器。我已将此行添加到我的 ~/.sbclrc 中,当我从命令行启动 sbcl 时一切正常。
(setf *debugger-hook* #'(lambda (c h) (declare (ignore h)) (print c) (abort)))
但是,以上内容不适用于 Emacs SLIME。每当我编译/加载文件(C-c C-k)时,它仍然会调用调试器(带有中止计算、重新启动、输入新值等选项)。我怎样才能让 SLIME 只打印错误消息并让我回到顶层?是的,它与 SBCL 和 ~/.sbclrc 和以前一样。看起来 SLIME 不尊重用户的 *DEBUGGER-HOOK* 设置。
【问题讨论】:
-
我想
*DEBUGGER-HOOK*指的是实现的调试器。它是标准的一部分。所以,我认为 SLIME 不需要尊重它。 -
@FaheemMitha 是的,它是 Common Lisp 标准的一部分:clhs.lisp.se/Body/v_debugg.htm
标签: emacs lisp common-lisp slime sbcl