我正在尝试跟踪 emacs lisp 中的函数。我正在尝试使用 trace-function
和 friend ,但没有产生任何跟踪。 *trace-output*
缓冲区已创建,但未在其中写入任何内容。
这是问题的一个最小示例:
(progn
(require 'trace)
(untrace-all)
(defun f () 'hello)
;(trace-function 'f)
;(trace-function-background 'f)
(trace-function-foreground 'f)
(f))
从 *scratch*
中执行此操作会返回 'hello
,但跟踪信息不会写入 *trace-output*
或 *划痕*
。
我已经尝试过上面三个跟踪函数,但没有成功。
我做错了什么吗? 如何获取要生成的跟踪信息?
最佳答案
包trace.el定义了全局变量inhibit-trace
,最初为零。
但是,进入调试器集 inhibit-trace
至't
,
在调试器显式退出之前,它一直有效。
只需关闭 *Backtrace*
buffer 不会退出调试器。
我的问题是我在 session 的早期进入了调试器并且没有显式退出它。
这种行为值得更多人了解:)
关于debugging - elisp `trace-function` 不产生跟踪,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36276332/