add_spypoint/1 development

Synopsis

add_spypoint(+SpySpec)

sets a spypoint on the specified predicate or call.

Arguments


SpySpec compound
a specification of an individual spypoint. Two forms of spyspec are allowed:

predicate(Pred)
A spypoint on any call to Pred. Pred must be a skeletal predicate specification, and may be module qualified.
call(Caller,Clausenum,Callee,Callnum)
A spypoint on the Callnum call to Callee in the body of the Clausenum clause of Caller. Callee and Caller must be skeletal predicate specifications. Callnum and Clausenum must be integers, and begin counting from 1. Note that Callnum specifies a lexical position, that is, the number of the occurrence of Callee counting from the beginning of the body of the clause, and ignoring any punctuation.

Description

add_spypoint/1 is used to set spypoints on predicates or on specific calls to predicates while debugging.

add_spypoint/1 does not turn on the debugger. You have to explicitly turn on the debugger with a call to debug/0 or trace/0.

You can add spypoints to predicates or calls that do not exist. If they later get defined the spypoints get placed.

Turning off the debugger does not remove spypoints. Use remove_spypoint/1 to remove these spypoints.

If you are using QUI, the more convenient way to add these spypoints is to use the QUI based source debugger to select a particular goal or predicate and to use the Spypoints menu.

This predicate is not supported in runtime systems.

Exceptions


instantiation_error
SpySpec is not sufficiently instantiated.
type_error
SpySpec is not a compound term.
domain_error
SpySpec is not a predicate/1 or call/4 term.

See Also

current_spypoint/1, remove_spypoint/1, spy/1, nospy/1, debugging/0, dbg-bas-bas.