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.