Spy points are the most important debugging facility in Common Prolog. They are used in the same way
trace
is used in Lisp. After executing
(spy foo)
, all events associated with satisfying
foo
goals will be traced and the user will enter a debugging command loop at every port (see Interactive Debugging below). A user can also specify
(spy (foo 3))
,
(spy (foo bar))
, or
(spy ((foo 3) bar))
to place spy points on
foo
goals with arity 3, on all predicates for
foo
and
bar
, or on
foo
with arity 3 and all predicates for
bar
respectively. Spy points are turned off with
(nospy <
spypoints
>)
. If no spy points are mentioned,
nospy
will turn off all spy points.
KnowledgeWorks and Prolog User Guide (Unix version) - 6 Dec 2011