Spypoints allow you to indicate where to stop on
a per-predicate or even per-goal basis. For example, you might find
that you want to run until some particular predicate is called. In
this case, you would set a spypoint on that predicate, using
spy/1
. Such spypoints are turned off with nospy/1
.
It may be desirable to stop when you get to a particular call from one
predicate to another. This can be done with the built-in predicate
add_spypoint/1
. These spypoints can be removed with
remove_spypoint/1
.
To examine spypoints, use current_spypoint/1
. Spypoints are
also included in the output of debugging/0
. Finally, spypoints
can be removed all at once with nospyall/0
.
The debuggers also have commands for setting spypoints, which are easier to use than these predicates.