如何调试defadvice

ton*_*day 4 emacs

如何通过涉及的defadvice来调试错误?

搜索解决方案我发现的所有建议都是因为调试困难而不使用defadvice.对此不以为然,但其他人的无所不在无处不在,我总是遇到虫子,我甚至无法开始追查.

小智 8

我还能想到的另一件事:

  1. 临时重命名defadvicedefadvice-old.

  2. 写下这个新版本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)
  1. 检查(symbol-plist <<name of advice>>)一旦你需要它,它将在使用宏的文件的文件中的位置.