gpt4 book ai didi

emacs - 在运行的 Emacs Lisp 程序上设置断点

转载 作者:行者123 更新时间:2023-12-02 15:42:56 25 4
gpt4 key购买 nike

我在使用从 ubuntu 发行版中下载的 Emacs lisp 包时遇到问题。该包是 JDEE,每当我打开文件时,它都会在迷你缓冲区和 *Messages* 缓冲区中提示 Args out of range: "63", 0, 4 .这个错误似乎是去年 9 月报告的,但没有采取任何行动。我不是 emacs 新手,我自己写过一些 Elisp 代码,但我从未尝试过调试这样的东西。当发生此错误时,我想停止在调试器中加载文件,至少可以了解问题的来源。我已阅读 Elisp 手册第 18.1.1 节“错误时进入调试器”,但尝试在使用 debug-on-error 的各种值组合后加载文件debug-ignored-errorsdebug-on-signal 似乎没有效果。有人对我的下一步有什么建议吗?

最佳答案

如果出错时调试不起作用,我会从源代码本身开始。找到导致问题的键绑定(bind)/事件,并找到函数。

C-h k <keystrokes>
M-x find-function <function-name-from-above>

现在,一旦你到达了源头

M-x edebug-defun

下次您按下该键时,您应该能够单步执行该程序。届时,您可以查看导致错误的部分 - 并向下钻取。

您还可以尝试设置变量 'stack-trace-on-error 以查看是否可以找到罪魁祸首(虽然 'debug-on-error 通常有效对我来说,不知道为什么它不适合你)。

作为最后的手段(如果 edebug-defun 不起作用),您可以通过调用其中的 (debug) 来重新定义例程,有点像一样。

关于emacs - 在运行的 Emacs Lisp 程序上设置断点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/805292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com