【问题标题】:Emacs - *Backtrace* won't open on errorEmacs - *Backtrace* 出错时不会打开
【发布时间】:2014-05-28 01:55:23
【问题描述】:

我正在尝试让 Emacs 24.3.1 在出现错误时打开 *Backtrace* 缓冲区,但我尝试的任何方法似乎都无法解决问题。这包括评估(setq debug-on-error t),运行toggle-debug-on-error 命令,并验证我的.emacs 中没有任何可能影响它的内容。

错误总是打印到迷你缓冲区,但即使我手动打开*Backtrace,它也不会显示任何调试信息。

关于如何恢复预期功能有什么想法吗?

【问题讨论】:

  • 既然您已经接受了 Drew 的回答,那么问题出在哪里?
  • 错误的原因仍然不清楚,但正如我在回应他的回答时解释的那样,从终端调用 Emacs 导致恢复正常行为。从表面上看,这可能与 Ubuntu 包含可以从 Unity 启动的 Emacs 副本有关。但是,我也从源代码编译 Emacs - 这是从终端运行的应用程序的副本。两个副本是相同的版本,但一个显示为为 Debian 编译,另一个显示为为“未知”Linux 编译。

标签: emacs elisp emacs24


【解决方案1】:

我将只指出一个解决相同问题的先前实例的一件事。出错时,我的 emacs 转到了 *Backtrace*。因为我以前从未见过它,所以我杀了它。之后,如果出错,我只会在 ECHO 区域收到错误消息。为了恢复 *Backtrace* 缓冲区,我做了一次M+x debug。之后,我会在每个错误上获得 *Backtrace* 缓冲区。

【讨论】:

    【解决方案2】:

    您可以想象,由于 Emacs 24.3 已经推出了很长一段时间,很多人使用 debug-on-error 并没有问题。

    您没有提供从emacs -Q 开始的配方(即,不是初始化文件)。如果您可以给我们这样的方法来重现问题,那么我们可以尝试解决这个问题。除非您这样做,否则我们只能假设问题来自您的 init 文件(或它加载的某些代码)。

    如果不了解该代码,我们就无法提供太多帮助,只能建议一些方法来查找您的 init 文件引入的问题。 How to find a bug in .emacs or init.el 应该对此有所帮助。

    【讨论】:

    • 我的 init 文件为空 - 我确保重命名它以解决此问题。我一直在从 Ubuntu 应用程序(通过 Unity 启动器)运行 Emacs,但是当我使用 emacs -Q 从终端启动它时,它运行良好!所以,看起来问题已经解决了,但你知道为什么会这样吗?示例配方:$ emacs -Q(在 Emacs 中:)输入 (this shouldn't evaluate),然后输入 C-x C-e
    • 我假设您打算在尝试评估该性别之前添加M-x toggle-debug-on-error。对我来说,这样做会提高缓冲区*Backtrace* 中的调试器。我对 Unity 启动器一无所知,但可能与您看到的问题有关。除了*Backtrace*,您是否发现 Emacs 打开其他窗口有问题?如果这里没有人知道好主意,那么您可以考虑提交一份 Emacs 错误报告:M-x report-emacs-bug。 Emacs 开发人员很可能能够深入了解这一点。但是请稍等,看看是否有人对此有一些见解 - 例如也许是一些 Unity 专家。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-09-05
    • 2017-10-01
    • 2013-09-19
    • 1970-01-01
    • 1970-01-01
    • 2014-09-12
    • 2014-03-04
    相关资源
    最近更新 更多