Next: break! trace! trace-subtree!, Previous: Procedural Breakpoints, Up: Intro to Breakpoints
In general, that is. We've already seen how to set source and procedural breakpoints conveniently in practice. This section explains how those conveniences map onto a more general mechanism.
The general mechanism for setting breakpoints is the generic function
set-breakpoint!
. Different kinds of breakpoints define
subclasses of the class <breakpoint>
and provide their own
methods for set-pbreakpoint!
.
For example, (ice-9 debugger breakpoints procedural)
implements
the <procedure-breakpoint>
subclass and provides a
set-breakpoint!
method that takes a procedure argument:
(set-breakpoint! behavior fact1) -| Set breakpoint 1: [fact1] => #<<procedure-breakpoint> 808b0b0>
A non-type-specific set-breakpoint!
method is provided by the
generic module (ice-9 debugger breakpoints)
. It allows you to
change the behaviour of an existing breakpoint that is identified by
its breakpoint number.
(set-breakpoint! behavior 1)