我试图在确定的断点处检查变量的值。这是我的简化代码:
(defun foo ()
(maplist (lambda (var)
(break)
var)
'(a b c)))
此时,slime进入调试器模式。因此,我尝试按“:”或“e”键进行评估,然后输入“(car var)”,但史莱姆继续说:
变量VAR未绑定。 [UNBOUND-VARIABLE类型的条件]
我很困惑为什么它这样说,因为“(break)”在匿名函数内并且在“var”的范围内。
答案 0 :(得分:4)
这在CCL和CLisp下对我有用。我认为这是否有效取决于您的实施,也可能取决于您的OPTIMIZE
设置。你可以尝试:
(declaim (optimize (debug 3)))
之后您必须重新编译代码才能生效。
或许,如果您的实现支持解释,您可以尝试这样做,因为某些实现为解释提供了比编译代码更好的调试可能性。