'符号的函数定义无效:nil'哪个符号?

时间:2014-06-26 16:57:03

标签: emacs

启动emacs时出现以下错误:(如 messages 缓冲区所示):

c-font-lock-fontify-region: Symbol's function definition is void: nil

如何在此功能中追踪导致错误的确切原因? debug-on-error是真的,但它仍然没有提供更多的信息。

2 个答案:

答案 0 :(得分:6)

符号为nil。 它没有命名函数。

一般来说,要调试错误,您需要将debug-on-error设置为t并查看*Backtrace*缓冲区。 如果没有出现*Backtrace*缓冲区(这种情况就是这种情况),这意味着发出错误信号的函数的调用者会捕获错误。您需要追踪代码condition-case并禁用它。祝你好运: - (

查看c-font-lock-fontify-region中的progmodes/cc-mode.el定义,我看到了

(funcall (default-value 'font-lock-fontify-region-function)
         new-beg new-end verbose)

如果(default-value 'font-lock-fontify-region-function)nil,则很容易导致错误。

答案 1 :(得分:2)

即使错误被condition-case捕获,为了获得回溯,您也可以尝试(setq debug-on-signal t)。这会触发很多不是bug的情况,因此只能偶尔使用它,因为它确实会妨碍它,但在这种特殊情况下它可能会有所帮助。