定義内のすべてのブレークポイントは、定義を処置し直すたびに失われます。
ブレークポイントを失いたくない場合には、
ソース上のブレークポイント(source breakpoint)を指定できます。
これはソースコード上で関数edebugを呼び出すだけです。
もちろん、条件付けして呼び出せます。
たとえば、関数facにおいて、引数がゼロの場合に停止するには、
以下に示すように最初の行を挿入します。
(defun fac (n)
(if (= n 0) (edebug))
(if (< 0 n)
(* n (fac (1- n)))
1))
関数facを処置してこの関数を呼び出すと、
edebugの呼び出しはブレークポイントのように動作します。
実行モードに応じて、edebugはその箇所で停止するか休止します。
edebugを呼び出したコードが処置済みでなければ、
この関数はdebugを呼び出します。