首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关闭Emacs SLIME中的调试器

关闭Emacs SLIME中的调试器
EN

Stack Overflow用户
提问于 2013-04-20 16:29:02
回答 1查看 314关注 0票数 1

根据this question的说法,我可以自定义变量*DEBUGGER-HOOK*,这样它就会回落到toplevel (在REPL中),而不是调试器。我已经将这一行添加到我的~/.sbclrc中,当我从命令行启动sbcl时,一切正常。

代码语言:javascript
复制
(setf *debugger-hook* #'(lambda (c h) (declare (ignore h)) (print c) (abort)))

但是,上面的方法不适用于Emacs SLIME。每当我编译/加载一个文件(C-c、C-k)时,它仍然会调用调试器(使用诸如中止计算、重新启动、输入新值等选项)。我怎么才能让SLIME打印出错误消息,然后把我扔回顶层呢?是的,它使用SBCL和和以前一样的~/.sbclrc。看起来SLIME不尊重用户对*DEBUGGER-HOOK*的设置。

EN

回答 1

Stack Overflow用户

发布于 2013-04-22 23:13:56

根据http://common-lisp.net/project/slime/doc/html/Other-configurables.html,在~/.swank.lisp文件中将SWANK:*GLOBAL-DEBUGGER*设置为nil应该会强制SLIME不将*DEBUGGER-HOOK*替换为SWANK:SWANK-DEBUGGER-HOOK (显示重启列表等),但不知何故对我无效,即SWANK:*GLOBAL-DEBUGGER*为nil,但无论如何*DEBUGGER-HOOK*都会被SLIME替换。也许你会更幸运。

作为一种变通方法,我可以建议在slime-repl缓冲区中手动将*DEBUGGER-HOOK*设置为您想要的任何内容,这对我来说很有效。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16118283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档