【问题标题】:How to fix corrupted text in *Backtrace* buffer (emacs)如何修复 *Backtrace* 缓冲区 (emacs) 中损坏的文本
【发布时间】:2014-11-12 16:46:00
【问题描述】:

启用错误时调试后,Backtrace 缓冲区中的文本已损坏。 像这样。

示例

它用日语说也许。但是,我无法理解该消息。 有谁知道解决方法?我可以用英文显示消息。 任何帮助,将不胜感激。提前致谢。

条件

操作系统:Ubuntu 14.10

emacs 版本:24.4.1(x86_64-unknown-linux-gnu,GTK+ 版本 3.12.2)

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    是的,它是字节码。不,它不应该显示在回溯中。或者至少应该有一个用户选项不在回溯中显示它。

    我是 Emacs bug #6991,这是 4 年前报道的。

    遗憾的是,它尚未修复,只是被移至“Wishlist”(实际上又名/dev/null)。

    Bug #15789 还抱怨回溯中的字节码。)

    【讨论】:

    • 感谢您的回答,我明白了。
    • 错误 #6991 似乎是 fixed in June 2017。迟到总比没有好:)
    【解决方案2】:

    正如其他答案所说,这是字节码。您会看到这一点,因为 emacs 尚未评估源代码。这种效用可能值得商榷。不过,有时字节码可以提示正在发生的事情。

    要解决此问题,您应该访问 helm 源代码(只需单击其中一个函数,例如 helm-update,然后单击 M-x eval-buffer)。之后,您应该看到更有意义的回溯。 (但我无法对此进行测试:我通过 package-install 安装了 helm,在 debug-on-entry helm-aproposhelm-apropos 之后,我没有看到任何字节码。你是如何安装 helm 的?)

    【讨论】:

    • 感谢您的快速回复。我使用 MELPA 的 package-install 安装了 helm。(helm-20141106.257)。为了加载 helm 的 .elc 文件的 .el 文件,我删除了 helm 目录中的 .elc 文件。那么,任何错误都不会发生。我不明白为什么。
    【解决方案3】:

    这不是任何人类语言的文本,而是从 Emacs Lisp 编译的 Emacs 字节码。 (我不确定为什么它会显示在回溯缓冲区中——它也可能默认隐藏,因为它不太可能有助于解决任何问题。)

    您可以从上面了解到,函数 helm-mp-highlight-region 正在使用 nil 参数调用 re-search-forward,但 re-search-forward 需要一个字符串。这可能是 Helm 中的一个错误。

    【讨论】:

    • 感谢您的快速回复。我明白为什么文本似乎已损坏。
    猜你喜欢
    • 2012-03-27
    • 2012-08-05
    • 1970-01-01
    • 1970-01-01
    • 2013-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多