Dynamic predicate, normally not defined. This predicate is called from the SWI-Prolog debugger just before it would show a port. If this predicate succeeds the debugger assumes the trace action has been taken care of and continues execution as described by Action . Otherwise the normal Prolog debugger actions are performed.
Port is one of call , redo , exit , fail or unify .
Frame is an integer reference to the current local stack frame. Leaving it a variable is identical to continue . Together with the predicates described in section and the other predicates of this chapter this predicate enables the Prolog user to define a complete new debugger in Prolog. Besides this it enables the Prolog programmer monitor the execution of a program. The example shown in figure records all goals trapped by the tracer in the database.