The two places I’ve found that reference “Debug Mode” both state that it stops/traps “Trace Points” (which I understand to mean traces set by trace/1
and trace/2
):
- Here it says: “In debug mode, Prolog stops at spy and trace points…”
- Here it says: " If debug mode is activated the system traps encountered spy points (see spy/1) and trace points (see trace/1)…"
From what I can tell, Trace Points set by trace/1
and trace/2
don’t care whether you are in debug mode or not (and furthermore that the system never stops at a trace point set by trace/1 and trace/2, it only stops when in trace mode set by trace/0
):
foo(bar).
foo(baz).
?- trace(foo/1).
% foo/1: [all]
true.
?- debugging.
% Debug mode is off
true.
?- tracing.
false.
?- foo(X).
T Call: foo(_17194)
T Exit: foo(bar)
X = bar ;
T Redo: foo(bar)
T Exit: foo(baz)
X = baz.
Am I missing something or is there just a bug in the docs?