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.
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
.
fail
or trace
and determines the interpreters action when an undefined predicate which
is not declared dynamic is encountered (see dynamic/1). fail
implies the predicate just fails silently. trace
implies
the tracer is started. Default is
trace
. The unknown flag is local to each module and unknown/2
is module transparent. Using it as a directive in a module file will
only change the unknown flag for that module. Using the :/2 construct
the behaviour on trapping an undefined predicate can be changed for any
module. Note that if the unknown flag for a module equals fail
the system will not call exception/3
and will not try to resolve the predicate via the dynamic library
system. The system will still try to import the predicate from the
public module.
:- style_check(-atom). |
Currently available options are:
Name | Default | Description |
singleton | on | read_clause/1 (used by consult/1) warns on variables only appearing once in a term (clause) which have a name not starting with an underscore. |
atom | on | read/1 and derivatives will produce an error message on quoted atoms or strings longer than 5 lines. |
dollar | off | Accept dollar as a lower case character, thus avoiding the need for quoting atoms with dollar signs. System maintenance use only. |
discontiguous | on | Warn if the clauses for a predicate are not together in the same source file. |
string | off | Read
and derivatives transform " ... " into a prolog string
instead of a list of ASCII characters. |