Did you know ... | Search Documentation: |
Command Line Debugger Summary |
In summary, there are really two distinct "tracing" features: trace mode and trace points. Both write traces to the console using the "Byrd Box Model" but that's where similarity ends.
Trace mode is the main Prolog command line debugger that allows for tracing the transitions through the resolution states of predicates represented by ports in the "Byrd Box Model" and optionally pausing for a command when certain ports are hit.
It can be turned on manually via trace/0, or (when put into debug mode using debug/0) when a specific predicate is encountered via spy/1, or when a specific call to a predicate is encountered via set_breakpoint/4 or set_breakpoint/5.
When in trace mode, visible/1 controls which ports are written to the console, and leash/1 controls which ports cause execution to pause to allow program inspection.
When execution is paused, there are many commands that can be used to inspect the state of the program, cause goals to fail or succeed, etc.
Trace mode is turned off via notrace/0 and debug mode is turned off via nodebug/0.
Trace points are a separate feature from trace mode that allow writing specified ports to the console when a predicate is being evaluated. It does not ever pause program execution and does not need to be in trace or debug mode to work.
They are turned on via trace/1 and trace/2.
They don't pay attention to visible/1 (because the ports shown are set in trace/2) or leash/1 (because they don't pause execution).
They can be turned off via trace/2.