如何通过涉及的defadvice来调试错误?
搜索解决方案我发现的所有建议都是因为调试困难而不使用defadvice.对此不以为然,但其他人的无所不在无处不在,我总是遇到虫子,我甚至无法开始追查.
小智 8
我还能想到的另一件事:
临时重命名defadvice为defadvice-old.
写下这个新版本defadvice:
(defmacro defadvice (function args &rest body)
`(progn
(put ',(cadr args) 'source-position
(cons byte-compile-current-file byte-compile-read-position))
(defadvice-old ,function ,args ,@body)))
Run Code Online (Sandbox Code Playgroud)
(symbol-plist <<name of advice>>)一旦你需要它,它将在使用宏的文件的文件中的位置.