This module can be used to spy predicates in a program. Spying a predicate means here that messages are displayed at the call, exit, fail and redo ports of the goals in the bodies of the clauses of the predicate spied.
In order to spy a predicate using this module a program expansion has to be performed on the program module defining the predicate. This is achieved by the tracing package.
This library is a programming exercise in CIAO expansion packages. It does not replace the standard interactive debugger, which has more functionality and is better integrated with the emacs mode. However, this library can sometimes be useful because it is more lightweight and allows tracing compiled code.
in the program module defining the code to be spied; or
:- use_module(library(tracing/traces)).
to call the predicates exported by this module.
Turns spying of predicate F/A in module M on. Declarations of the form spy(F/A) (where M is implicitly taken as the module where the declaration appears) can also be used, as long as the tracing package is included.
Turns spying of predicate F/A in module M off.