请问怎样高效地 debug elisp error ?

不知道大家有没有这样的经历,elisp 遇到错误的时候,面对一大堆 backtrace 无从下手?特别是当其中包含 lambda,以及 byte-compiled elisp function 的时候。有没有什么好的办法迅速找到问题的症结呢?希望大家能够建言献策。

比如我定义的 advice 出错的时候,backtrace 最上面是由 lambda 包围的一大堆函数(这是由 advice 的机制决定的吗?),请问这种情况应该怎么 debug?

大神们能不能谈谈经验?

找到这个函数后按 C-M-x (eval-defun) 重新执行一遍函数,就可以去掉 byte-compile 了

3 个赞

学习了,赞!

这个过程能不能自动化?

更大的难题是 lambda,我自己写的时候尽量避免复杂的 lambda。但是 advice 引入的 lambda 真是蛋疼。