17 如果某些emacs-lisp函数(例如主模式钩子)花费的时间比预期的要长,我有时想中断它并查看当前堆栈。理想情况下,我还希望能够在调试器中查看变量值,等等。我不是在谈论我故意在emacs-lisp模式下执行的代码,而是在emacs的正常操作中执行的代码。 如何直接在emacs中中断emacs-lisp代码的执行?我不知道我需要调试哪个功能。 例如,键入C-g,虽然它中断执行,但也告诉我什么功能被中断。 elisp debugging — 基里尔 source
18 您可以C-g通过打开来触发调试器debug-on-quit。做就是了 M-x toggle-debug-on-quit 现在,每次您点击时,C-g您都会回溯正在发生的事情。此回溯是交互式的,因此您可以继续使用逐步浏览该功能d,并可以开始使用c。(尝试一下,看起来比看起来容易)。 这与通过(debug)在代码内部添加而获得的回溯相同。这是一篇简短的博客文章 ,以及相关的Elisp手册页。 — 马拉巴巴 source (每周说hello);)令人敬畏的是,调试器是交互式的–我从没想过要检查一下:) — Sean Allred 2014年 @SeanAllred是的,我只是在几周前才发现。 — 马拉巴巴
hello
);)令人敬畏的是,调试器是交互式的–我从没想过要检查一下:)