elisp `trace-function` 不产生跟踪

Dan*_*ler 2 debugging emacs trace elisp

我正在尝试跟踪 emacs lisp 中的函数。我正在尝试使用trace-function和朋友,但没有产生任何痕迹。缓冲区*trace-output*已创建,但未在其中写入任何内容。

这是问题的一个最小示例:

(progn
  (require 'trace)
  (untrace-all)
  (defun f () 'hello)
  ;(trace-function 'f)
  ;(trace-function-background 'f)
  (trace-function-foreground 'f)
  (f))
Run Code Online (Sandbox Code Playgroud)

*scratch*返回中执行此操作'hello,但跟踪信息不会写入*trace-output**scratch*。我已经尝试过上面三个跟踪函数中的每一个,但没有成功。

难道我做错了什么?如何获取要生成的跟踪信息?

Dan*_*ler 6

包trace.el定义了全局变量inhibit-trace,它最初是nil。但是,输入调试器设置inhibit-trace't,这将一直有效,直到调试器显式退出为止。简单地关闭*Backtrace*缓冲区并不会退出调试器。

我的问题是我在会话的早些时候进入了调试器并且没有明确退出它。

这种行为值得更多人了解:)