根据this question,我可以自定义变量*DEBUGGER-HOOK*
,以便它回到顶层(在REPL中)而不是调试器。我已经将这行添加到我的〜/ .sbclrc中,并且当我从命令行启动sbcl时,这一切都很好。Emacs SLIME中的关闭调试器
(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是需要尊重它的。 – 2013-04-21 12:32:42
@FaheemMitha是的,它是Common Lisp标准的一部分:http://clhs.lisp.se/Body/v_debugg.htm – 2013-04-21 20:33:08