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
.+<option>
,
-<option>
, ?(<option>)
101In
older versions `?
' 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.