This library prints accesses to specified predicates by wrapping the predicate.
Module:Name/Arity
(or `//Arity for non-terminals),
both the module and arity may be omitted in which case Pred refers
to all matching predicates. PortSpec is either a single port
(call
, exit
, fail
or redo
), preceded with +
or -
or a
list of these. The predicate modifies the current trace
specification and then installs a suitable wrapper for the predicate
using wrap_predicate/4. For example:
`
?-
trace(append)
.
% append/2: [all]
% append/3: [all]
% append/1: [all]
true.
?- append([a,b], [c], L)
.
T Call: lists:append([a, b], [c], _10478)
T Call: lists:append([b], [c], _11316)
T Call: lists:append([], [c], _11894)
T Exit: lists:append([], [c], [c])
T Exit: lists:append([b], [c], [b, c])
T Exit: lists:append([a, b], [c], [a, b, c])
L = [a, b, c].
?- trace(append, -all)
.
% append/2: Not tracing
% append/3: Not tracing
% append/1: Not tracing
The following predicates are exported, but not or incorrectly documented.