debugging - elisp `trace-function` 不产生跟踪

标签 debugging emacs elisp trace

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

相关文章:

emacs - 调整文本 : Lisp nesting exceeds `max-lisp-eval-depth

lisp - emacs lisp 无法启动

emacs - 如何向 Emacs 字体添加 1 像素的垂直间距?

Javascript for 循环应该循环两次,为什么只循环一次?

c++ - 当我使用共享库编译并运行该程序时,为什么 tcmalloc 会失败?

c++ - LeakSanitizer 和泄漏库

emacs - 自动完成弹出式窗口右侧的字母是什么?

Emacs -- 测试以确定正在运行的钩子(Hook)类型

emacs insert-kbd-macro...[不匹配]

debugging - 在用户定义的命令期间禁用 GDB 输出