elisp: Source Breakpoints
17.2.6.3 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’.