Emacs - *Backtrace* 在错误时无法打开

3
我正在尝试让Emacs 24.3.1在出错时打开*Backtrace*缓冲区,但我尝试的所有方式都没有起作用。包括评估(setq debug-on-error t)、运行toggle-debug-on-error命令以及确认我的.emacs中没有任何可能影响它的内容。
错误始终会被打印到迷你缓冲区中,但即使我手动打开*Backtrace*,它也不会显示任何调试信息。
有什么想法可以恢复预期的功能吗?

既然你接受了Drew的答案,那问题最终是什么呢? - phils
错误的原因仍然不清楚,但是如我在回答中所解释的那样,从终端调用Emacs可以恢复正常行为。看起来可能与Ubuntu包含一个可以从Unity启动的Emacs版本有关。然而,我也从源代码编译了Emacs - 这是从终端运行的应用程序副本。这两个副本是相同的版本,但其中一个显示为编译为Debian,另一个显示为编译为“未知”的Linux。 - JDRomano2
2个回答

9

我只想指出一件解决同样问题的事情。在错误发生时,我的emacs进入了*Backtrace*。由于我以前从来没有见过它,所以我把它关掉了。在那之后,每当出现错误时,我只会在ECHO区域收到错误消息。为了恢复*Backtrace*缓冲区,我需要执行 M+x debug 命令。这样做后,每次出现错误我都能看到*Backtrace*缓冲区。


1
您可以想象,由于Emacs 24.3已经发布了相当长的时间,许多人在其中使用debug-on-error而没有遇到任何问题。
您没有提供从emacs -Q(即没有init文件)开始的步骤。如果您可以给出这样一个重现问题的步骤,那么我们可以尝试解决该问题。除非您这样做,否则我们只能假设问题来自于您的init文件(或者它加载的某些代码)。
没有了解那些代码,我们实际上无法提供太多帮助,除了建议找到由init文件引入的问题的方法。如何在.emacs或init.el中找到错误应该对此有所帮助。

我的init文件是空的 - 我确保将其重命名以解决这个问题。我一直在通过Unity启动器从Ubuntu应用程序中运行Emacs,但是当我从终端使用emacs -Q启动它时,它可以正常工作!所以,问题似乎已经解决了,但你有任何想法为什么会出现这种情况吗?示例配方:$ emacs -Q (在Emacs中:) 输入(this shouldn't evaluate),然后按C-x C-e - JDRomano2
我猜你在尝试评估那个S表达式之前,想要添加M-x toggle-debug-on-error。这样做会为我在缓冲区*Backtrace*中引发调试器。我对Unity启动器一无所知,但也许它与你看到的问题有关。除了*Backtrace*之外,Emacs打开其他窗口是否存在问题?如果这里没有人有好主意,那么你可以考虑提交一个Emacs错误报告:M-x report-emacs-bug。Emacs开发人员可能能够找到问题的根源。但是请稍等一下,看看这里是否有人对此有深入的了解——例如,也许有一些Unity专家。 - Drew

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接