我正在使用的外部库经常固定我的CPU.我想帮助作者修复它(因为我非常喜欢库),但我不知道如何正确调试崩溃.
有关调试Emacs lisp的提示吗?当它崩溃时要记住Emacs不再工作了,我必须杀掉它(所以Emacs内部的解决方案本身可能没有帮助).
编辑:我应该澄清它是字节编译的,并且这个问题并不总是发生在其他人身上,因此它可能特定于我的架构/ init文件.这绝对与这个图书馆有关.
首先,总是调试Emacs-Lisp程序的未编译版本,除非你确信字节编译器引入了这个问题.
其次,如果代码挂起Emacs,则代码可能处于无限循环中,禁止 - 退出绑定非零.所以要做的第一件事就是浏览库的源代码并将所有禁止 - 退出引用更改为其他内容,以便Cg可以停止循环.在那之后,加载库,将debug-on-quit设置为t,当你按Cg显示代码循环的位置时,你应该得到一个很好的调试跟踪.从那里,调试问题应该像调试任何其他无限循环一样简单.