查找警告的起源


11

我运行了一条命令,并在迷你缓冲区中收到警告。

确切的警告是comint-completion-at-point failed to return valid completion data,当我在Windows中自动完成命令后shell-mode

如何确定警告的明确来源?


请参阅有关调试Lisp程序的手册。
freakhill 2014年

1
C-h f comint-completion-at-point,然后单击文件名以查看源代码。查找该错误消息。(您也可以grep查找Lisp源中的错误msg来找到它。)
Drew

Answers:


17

正如在其他答案中指出的那样,您会发现精美的手册对它具有的所有调试工具很有用。对于您的特定问题,我会考虑:

(setq debug-on-message "comint-completion-at-point failed to return valid completion data")

如帮助文本所述:

If non-nil, debug if a message matching this regexp is displayed.

由此,您应该在发生故障时获得回溯。然后,您可以使用Cu CMx检测有问题的功能,并在下次发生故障时逐步解决该故障,以获取更多信息。


3
这是一个很好的答案。谢谢。我认为您在第一行setq加上和会额外加引号'debug-on-message。将其更改为setq debug-on-messageset 'debug-on-message为我修复。
马修·皮兹亚克

@MatthewPiziak:谢谢-过于狂热的报价已修正。
stsquad 2014年

这比zgrepping Emacs压缩源要好得多!这样做的唯一弊端是必须先出现问题状态,然后才能对其进行调试。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.