This section is a reference to the debugger interaction predicates. A more use-oriented overview of the debugger is in section 2.9.
If you have installed XPCE, you can use the graphical front-end of the tracer. This front-end is installed using the predicate guitracer/0.
trace(Pred, +all)
.
call
,
redo
, exit
, fail
). The atom all
refers to all ports. If the port is preceded by a -
sign, the trace-point is cleared for the port. If it is preceded by a +
,
the trace-point is set.
The predicate trace/2 activates debug mode (see debug/0). Each time a port (of the 4-port model) is passed that has a trace-point set, the goal is printed as with trace/0. Unlike trace/0, however, the execution is continued without asking for further information. Examples:
?- trace(hello). | Trace all ports of hello with any arity in any module. |
?- trace(foo/2, +fail). | Trace failures of foo/2 in any module. |
?- trace(bar/1, -all). | Stop tracing bar/1. |
The predicate debugging/0 shows all currently defined trace-points.
Note that the min_free
parameter of all stacks is
enlarged to 8 K cells if debugging is switched off in order to
avoid excessive GC. GC complicates tracing because it renames the _G<NNN>
variables and replaces unreachable variables with the atom
\bnfmeta{garbage_collected}
. Calling nodebug/0
does not reset the initial free-margin because several parts of
the top-level and debugger disable debugging of system code regions. See
also set_prolog_stack/2.
call
, redo
, exit
, fail
and
unify
. The special shorthand all
refers to all
ports,
full
refers to all ports except for the unify port
(default).
half
refers to the call
, redo
and fail
port.full
.trace
(meaning error
) and fail
.
If the unknown flag
is set to
warning
, unknown/2
reports the value as trace
.?
' was a prefix operator. In
versions after 5.5.13, explicit brackets are needed. or a
list of such options. +<option> sets a style
checking option, -<option> clears it and ?(<option>)
succeeds or fails according to the current setting. consult/1
and derivatives reset the style checking options to their value before
loading the file. If, for example, a file containing long atoms should
be loaded, the user can start the file with:
:- style_check(-atom).
The currently available options are given below with their default between brackets.
\
or \
c
.
This flag also enables warnings on \
<newline>
followed by blank space in native mode. See
section 2.15.1.2.