A call back can replace the default debugger user interface. The instrumented code of a clause automatically checks for debugging conditions. The typical conditions are those from debug mode, spy points and break points described in the previous section. When the corresponding condition is met, the interpreter will call the predicate trace_goal/2.
The system predicate trace_goal/2 is customizable by the end-user via additional rules for the multi-file predicate goal_tracing/2. If the additional multi-file rules fail, the system predicate will invoke the default debugger user interface. The behaviour of the default debugger user inter-face can be further configured by the predicate leash/1.
Predicates that have the sys_notrace predicate property set can also meet some condition, but are not display by the default debugger user interface. A couple of predicates that resemble commands, e.g. listing/1, trace/1, etc., have the sys_notrace predicate property by set, so that they do not clutter interactive debugging.
The following debug plugins predicates are provided:
The following debug plugins Prolog flags are provided: