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

Nat*_*ath 1 emacs

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

c-font-lock-fontify-region: Symbol's function definition is void: nil
Run Code Online (Sandbox Code Playgroud)

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

sds*_*sds 7

符号是nil.它没有命名功能.

一般来说,调试错误,需要设置debug-on-errort,并期待在*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)
Run Code Online (Sandbox Code Playgroud)

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

  • 注意,Emacs 24.3引入了极其有用的(在这种情况下)“消息调试”变量。 (2认同)