我正在调试为什么使用软件包1中的函数时emacs崩溃。此调试过程的目的是获得有用的数据以使用提交M-x report-emacs-bug
。
为了获得有关如何调试emacs崩溃的帮助,我已经查看了Emacs手册-崩溃和Emacs手册-崩溃后,但是它们没有帮助。
“ 崩溃后的故障”手册指的是,emacs-buffer.gdb
但我不知道如何使用它。在向Google寻求帮助时,我遇到了这个emacs.SE问题,并使用-ggdb3
标志重新编译了emacs 。
我没有使用gdb
过的经验,因此尝试使用该emacs-buffer.gbd
文件的尝试很少。
这是我尝试过的:
gdb -x /path/to/emacs-buffer.gdb
gdb
->file /path/to/emacs-buffer.gdb
gdb
->source /path/to/emacs-buffer.gdb
source /path/to/emacs-buffer.gdb
附带一提,使用该-ggdb3
标志编译的emacs 加载时间大约需要10秒;之前是5-6秒,现在是16-17秒。我知道确切的秒数,因为有代码可以在我的init中进行计算。启动时间会增加吗?
脚注1:undo-tree
尝试恢复特定.org文件(我无法公开共享)的撤消历史记录时,emacs始终崩溃。我有(setq undo-tree-auto-save-history t)
。此崩溃仅发生在emacs git master上,而不发生在emacs 24.5上。在emacs 24.5上,undo-tree
抛出一个错误,指出它无法加载撤消历史记录(即使存在撤消历史记录文件也是如此),但是至少emacs会话不会在该版本上崩溃。
undue-tree
问题而很重要,但是潜力更大。
undo-tree
特定的答案,因为我知道其他任何人都很难重新创建确切的崩溃。我也无法共享整个org文件,这是似乎导致此崩溃的唯一文件。因此,我仅将gdb
标签应用于此问题。我给了这个故事,以便答案可以指导我一般如何调试emacs崩溃,以便我可以提交有用的emacs错误报告。