




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.