跟踪导致锁定警告,为什么?

trace results in a locked warning, why?

我想使用 trace 分析我的代码的执行情况,因此我输入了

(trace oddp)

进入 REPL。与我的预期相反,我收到一条错误消息,告诉我:

** - Continuable Error
TRACE(ODDP): #<PACKAGE COMMON-LISP> is locked
If you continue (by typing 'continue'): Ignore the lock and proceed

这到底是什么意思,为什么会发生,忽略锁继续操作是否安全?

TRACE 通过将函数重新定义为打印跟踪消息然后调用原始函数的函数来工作。但是你通常不允许重新定义内置函数,所以你会得到这个错误。