2

ECLを使ってCommon Lispを勉強しています。デバッグ方法はhttps://malisper.me/debugging-lisp-part-1-recompilation/を参考にやってみましたが、ステップ実行がうまくいきませんでした。

"(break)" を挿入して "RETRY" を選択すると、ブレークで最初に処理が停止します。これは、上記のページに示されているように意図された動作です。

(defun fib (n)
  (break)
  (if (<= 0 n 1)
      (/ 1 0)
      (+ (fib (- n 1))
         (fib (- n 2)))))
Break
   [Condition of type SIMPLE-CONDITION]

次にSキーを押した時、踏んだはずなのに以下のエラーメッセージが表示されました。

SWANK/BACKEND: ACTIVATE-STEPPING not implemented
   [Condition of type SIMPLE-ERROR]

Restarts:
 0: [ABORT] Return to sldb level 1.
 1: [CONTINUE] Return from BREAK.
 2: [RETRY] ​​Retry SLIME REPL evaluation request.
 3: [* ABORT] Return to SLIME's top level.
 4: [ABORT] ABORT

これはECLの実装上の問題かもしれませんが、ECLでは通常どのようなデバッグが行われているのか知りたいです。

よろしく、NOEU

4

1 に答える 1