elisp`trace-function`没有产生痕迹

时间:2016-03-29 05:44:34

标签: debugging emacs elisp trace tracing

我正在尝试跟踪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))

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

我做错了吗? 如何获得跟踪信息?

1 个答案:

答案 0 :(得分:2)

包trace.el定义全局变量inhibit-trace,最初为零。 但是,输入调试器集inhibit-trace't, 在调试器明确退出之前一直有效。 只需关闭*Backtrace*缓冲区就不会退出调试器。

我的问题是我之前在我的sesion中输入了调试器而没有明确地退出它。

这种行为应该更为人所知:)