gpt4 book ai didi

emacs - 在 adoc 模式下调试 emacs 卡住

转载 作者:行者123 更新时间:2023-12-04 15:58:11 25 4
gpt4 key购买 nike

我在 emacs ( adoc-mode ) 中与 Asciidoc 一起工作了很多。我相信它在编辑内联源代码时会出现一个错误。发生的情况是 emacs 卡住,CPU 消耗达到 100%。我可以轻松重现这种行为。

我如何真正确定是什么脚本导致 emacs 像那样挂起?并最好产生一个回溯?

由于 emacs 在缓冲区内键入时卡住,而不是在执行命令后,诸如
toggle-debug-on-quitdebug-on-entry没用。

我想我可以标记每一个 defunadoc-mode.elprintf s,但我希望有更简单的方法:)

编辑:
所以,我结束了 grep ping 我的 ~/.emacs.d/lisp所有 defun s 和 trace-function每一个。
我能够缩小问题的范围并创建了一个小测试用例。

这3个文件是必需的:

$ find /home/victor/.emacs.d/
/home/victor/.emacs.d/
/home/victor/.emacs.d/lisp
/home/victor/.emacs.d/lisp/doc-mode.el
/home/victor/.emacs.d/lisp/adoc-mode.el
/home/victor/.emacs.d/lisp/markup-faces.el

我的 .emacs :
$ cat .emacs
(setq inhibit-startup-message t)
(add-to-list 'load-path "~/.emacs.d/lisp/")
(require 'adoc-mode)
(switch-to-buffer (find-file "test.doc"))
(adoc-mode)
(goto-char 29)
(delete-backward-char 5)
;; now (adoc-kwf-attriblist) is in endless loop!!

测试用例是(elisp 删除了单词“shell”):
$ cat test.doc 
blah blah blah
[source,shell]
foo
bar

现在,运行 emacs它将卡在 (adoc-kwf-attriblist) .我对 emacs 编程了解不多,但似乎这件事最终并没有将重点转移到 end位置。
 (goto-char (or (text-property-not-all (point) end 'adoc-attribute-list nil)
end))

最佳答案

如果您可以识别到达循环器的序列中的函数,则进入时调试可能会有所帮助。

你试过“apropos”“debug”吗?

不确定信号时调试或退出时调试。如果使用 Unix "kill"或 Windows 任务管理器 "End Task"向 emacs 发送信号,您可以使用 debug-on-signal 拦截它。

并在以下位置搜索“调试循环”
https://groups.google.com/forum/#!forum/gnu.emacs.help

此外,您可以使用 edebug-defun 在 adoc-mode.el "debug"中编译一些功能。

(我希望我没有混淆这个话题。我是新来的,不熟悉“回答”与“评论”。)

关于emacs - 在 adoc 模式下调试 emacs 卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21787592/

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