7

決定されたブレークポイントで変数の値を検査しようとしています。ここに私の単純化されたコードがあります:

(defun foo ()
  (maplist (lambda (var)
        (break)
        var)
      '(a b c)))

この時点で、スライムはデバッガー モードに入ります。そこで、「:」または「e」キーを押して eval を試み、「(car var)」と入力しますが、スライムは次のように言い続けます。

変数 VAR はバインドされていません。【UNBOUND-VARIABLE型の条件】

「(break)」は無名関数内にあり、「var」のスコープ内にあるため、なぜこれを言っているのか混乱しています。

4

1 に答える 1

4

それはCCLとCLispの下で私のために働きます。これが機能するかどうかは、実装、そしておそらく設定に依存すると思いOPTIMIZEます。あなたは試すことができます:

(declaim (optimize (debug 3)))

コードを有効にするには、後でコードを再コンパイルする必要があります。

あるいは、実装がインタプリタをサポートしている場合は、それを試すことができます。一部の実装では、コンパイルされたコードよりもインタプリタのデバッグの可能性が高いためです。

于 2011-10-08T16:54:14.633 に答える