检查lisp中的变量SLIME调试程序
问题描述:
我想在确定的断点处检查变量的值。这里是我的简化代码:检查lisp中的变量SLIME调试程序
(defun foo()
(maplist (lambda (var)
(break)
var)
'(a b c)))
史莱姆进入调试器模式在这一点上。所以我尝试通过按“:”或“e”键,然后输入“(汽车变量)”来评估,但是粘液持续说:
变量VAR未绑定。 [条件类型的未绑定变量]
我很困惑,为什么它这么说,因为“(中断)”是匿名函数中和“VAR”的范围之内。
答
这对CCL和CLisp有效。我认为这是否有效取决于您的实施情况,也许您的设置为OPTIMIZE
。你可以尝试:
(declaim (optimize (debug 3)))
你必须重新编译你的代码后才能生效。或者,如果你的实现支持解释,你可以试试,因为一些实现为解释提供了比编译代码更好的调试可能性。
此外,当按下'e'键时,你当然必须在正确的框架中,但我想你知道这一点,而且这就是默认情况下最终结束的地方。 – danlei
是的,这对我很有用,谢谢。另外,一旦你设置了“(declaim(optimize(debug 3)))”这一行,你必须重新编译你的lisp代码以使更改生效。是的,在对调试器中的适当变量进行评估时,您必须处于正确的框架中。 –