14.3 Debugging-related Predicate Properties
Predicates have a number of properties which can be listed using the
pred/1 built-in.
The following predicate flags and properties affect the way the
predicate is traced by the debugger:
-
debugged
Indicates whether the predicate has been compiled in debug-compile mode.
If on, calls to the predicate's subgoal will be traced.
The value of this property can only be changed by re-compiling
the predicate in a different mode.
- leash
If notrace, no port of the predicate will be shown
in the trace (but the invocations will be counted nevertheless).
If stop, the ports of this predicate will be shown and
the debugger will stop and await new commands.
(The print setting is currently not supported).
The value of this property can be changed with
traceable/1,
untraceable/1 or
set_flag/3.
- spy
If on, the predicate has a spy-point and the debugger will
stop at its ports when in leap mode.
The value of this property can be changed with
spy/1,
nospy/1 or
set_flag/3.
- skipped
If on, the predicate's subgoal will not be traced even
if it has been compiled in debug-compile mode.
The value of this property can be changed with
skipped/1,
unskipped/1 or
set_flag/3.
- start_tracing
If on, a call to the predicate will activate the debugger if it
is not already running.
Only the execution within this predicate's box will be traced.
This is useful for debugging part of a big
program without having to change the source code.
The effect is similar to wrapping all call of the predicate into
trace/1.