不知道大家有没有这样的经历,elisp 遇到错误的时候,面对一大堆 backtrace 无从下手?特别是当其中包含 lambda,以及 byte-compiled elisp function 的时候。有没有什么好的办法迅速找到问题的症结呢?希望大家能够建言献策。
比如我定义的 advice 出错的时候,backtrace 最上面是由 lambda 包围的一大堆函数(这是由 advice 的机制决定的吗?),请问这种情况应该怎么 debug?
大神们能不能谈谈经验?
不知道大家有没有这样的经历,elisp 遇到错误的时候,面对一大堆 backtrace 无从下手?特别是当其中包含 lambda,以及 byte-compiled elisp function 的时候。有没有什么好的办法迅速找到问题的症结呢?希望大家能够建言献策。
比如我定义的 advice 出错的时候,backtrace 最上面是由 lambda 包围的一大堆函数(这是由 advice 的机制决定的吗?),请问这种情况应该怎么 debug?
大神们能不能谈谈经验?
找到这个函数后按 C-M-x (eval-defun
) 重新执行一遍函数,就可以去掉 byte-compile 了
学习了,赞!
这个过程能不能自动化?
更大的难题是 lambda,我自己写的时候尽量避免复杂的 lambda。但是 advice 引入的 lambda 真是蛋疼。