Próbuję sprawdzić wartość zmiennej w określonym punkcie przerwania. Oto mój uproszczony kod:Sprawdzanie zmiennej w debiucie SLIME o numerze SSL
(defun foo()
(maplist (lambda (var)
(break)
var)
'(a b c)))
Szlam przechodzi w tryb debuggera w tym momencie. Tak więc próbuję wykonać eval, naciskając klawisz ":" lub "e", a następnie wpisuję "(car var)", ale śluz ciągle mówi:
Zmienna VAR jest niezwiązana. [Warunek typu niezwiązanej zmiennej]
Jestem zdezorientowany, dlaczego to mówi ten od „(przerwa)” jest wewnątrz funkcji anonimowe i objęte zakresem „zmienna”.
Oczywiście, musisz nacisnąć prawą ramkę, gdy naciśniesz 'e', ale domyślam się, że wiesz, i to jest to, gdzie i tak kończysz domyślnie. – danlei
Tak, to działało dla mnie, dziękuję. Ponadto, po ustawieniu linii "(declaim (optimize (debug 3))), musisz przekompilować swój kod Lisp, aby zmiana była skuteczna. I tak, musisz być we właściwej ramce przy ocenie w odpowiedniej zmiennej w debugerze. –