【问题标题】:elisp `trace-function` not producing traceelisp `trace-function` 不产生跟踪
【发布时间】:2016-07-16 12:55:01
【问题描述】:

我正在尝试在 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*。 我已经尝试了上面三个跟踪函数中的每一个都没有成功。

我做错了吗? 如何获取要生成的跟踪信息?

【问题讨论】:

  • 你的测试在我尝试时有效(在emacs-24.4 -Q),所以似乎缺少一些信息。
  • @Stefan 我今年 25 岁,但我刚刚用 emacs -Q 进行了测试,它确实有效,所以真正的问题是已知哪些软件包或设置会干扰 function-trace :(
  • Fwiw 我有很多包,但我不做大量的定制。我主要只是使用自定义选项。

标签: debugging emacs elisp trace


【解决方案1】:

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

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

这种行为值得被更好地了解:)

【讨论】:

    猜你喜欢
    • 2019-05-10
    • 1970-01-01
    • 2014-07-27
    • 1970-01-01
    • 1970-01-01
    • 2016-04-25
    • 1970-01-01
    • 2019-11-09
    • 1970-01-01
    相关资源
    最近更新 更多