Debugging-related Predicate Properties

## 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.