Source Breakpoints
..................
All breakpoints in a definition are forgotten each time you
reinstrument it. If you wish to make a breakpoint that won't be
forgotten, you can write a "source breakpoint", which is simply a call
to the function `edebug' in your source code. You can, of course, make
such a call conditional. For example, in the `fac' function, you can
insert the first line as shown below, to stop when the argument reaches
zero:
(defun fac (n)
(if (= n 0) (edebug))
(if (< 0 n)
(* n (fac (1- n)))
1))
When the `fac' definition is instrumented and the function is
called, the call to `edebug' acts as a breakpoint. Depending on the
execution mode, Edebug stops or pauses there.
If no instrumented code is being executed when `edebug' is called,
that function calls `debug'.