【问题标题】:Emacs -- Debugging an ispell error .Emacs - 调试 ispell 错误。
【发布时间】:2014-05-23 13:26:24
【问题描述】:

我每天都会收到几次 ispell 错误(如下所示),通过重新启动 Emacs 可以更正。对于如何进一步解决此类错误的任何想法将不胜感激。

Debugger entered--Lisp error: (wrong-type-argument number-or-marker-p nil)
  ispell-command-loop(("Brae" "Br ea" "Br-ea" "Bra" "Bread" "Break" "Bream"
    "Brew" "Bret" "Bred" "Area" "Urea") nil "Brea" 2229 2233)
  ispell-process-line("^Brea, CA ~ 92821\n" nil)
  ispell-region(1 6771)
  ispell-buffer()
  ispell()
  call-interactively(ispell nil nil)
  command-execute(ispell)

被拼写检查的文档位于tex-mode 中(内置——即使用AUCTeX)。错误(今天)来自flush-left的一个简单地址:

242 S. Orange Avenue\\
Brea, CA ~ 92821

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    尝试加载ispell.el,然后:

    1. 尝试引发错误。加载源文件(不是字节编译文件)后,您可能会得到更详细的回溯,它会更好地告诉您导致错误的原因。 (你显然已经有debug-on-errornil。)

    2. 如果这还不足以告诉您,请执行M-x debug-on-entry ispell-command-loop,并在调试器中逐步执行。这应该会告诉您出了什么问题 - 该函数需要一个数字,而改为 hasnil

    根据您更好的理解,您可能会知道该怎么做,以避免或解决问题。

    如果您不能轻松地重现错误,那么 #2 可能不会有太大帮助。在这种情况下,您可以尝试检查ispell-command-loop 的代码,看看您是否能找出问题所在。

    您还可以复制该代码并在各个位置插入对message 的调用,以尝试确定哪里出错了。 IOW,为自己提供比稀疏回溯更多的信息。

    也许其他人有更好的想法——我的想法在这里几乎是蛮力的。

    【讨论】:

    • 非常感谢——我会在接下来的几天内尝试所有这些并报告——:)
    猜你喜欢
    • 1970-01-01
    • 2013-06-12
    • 1970-01-01
    • 2013-06-04
    • 1970-01-01
    • 2014-01-03
    • 2014-01-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多