
 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.