如何描述本地函数(跟踪)?

Joh*_*ely 5 debugging trace common-lisp

在 Common Lisp 中,函数(跟踪名称)可用于查看有关函数调用的输出。

如果我的函数是用局部作用域声明的,我如何描述它以进行跟踪?

例如,如何跟踪栏,如下:

(defun foo (x)  
  (labels ((bar (y) (format t "bar: ~a~&" y)))  
    (bar x)))  
Run Code Online (Sandbox Code Playgroud)

Rai*_*wig 2

跟踪局部函数(TRACE ...)ANSI Common Lisp 没有定义

一些实现有扩展来做到这一点。参见CMU CL示例

除此之外,您还需要在 FOO 的定义中添加一些代码。例如,拥有一个宏可能很有用,这样您就可以将对 bar 的调用编写为 (trace-it (bar x)),并且该宏将扩展为打印进入和退出的代码。