定義内のすべてのブレークポイントは、再インストルメンテーションを行うたびに消去されます。消去されないブレークポイントを作成したい場合は、ソースブレークポイントを記述できます。これは単に、ソースコード内の関数 edebug を呼び出すものです。もちろん、このような呼び出しを条件付きにすることも可能です。例えば、fac 関数に以下のように1行目を挿入すれば、引数が0に達した時点で停止します:
(defun fac (n)
(if (= n 0) (edebug))
(if (< 0 n)
(* n (fac (1- n)))
1))
fac の定義にインストルメンテーションが施され、関数が呼び出されると、edebug への呼び出しがブレークポイントとして機能します。実行モード(Edebug 実行モードを参照)に応じて、Edebug
はそこで停止または一時停止します。
edebug
が呼び出された際にインストルメンテーションされたコードが実行されていない場合、その関数は debug
を呼び出します。