
trace_point_port(+Port, ?Invoc, ?Term)

   Create a user-defined debugger port.



Arguments
   Port                An atom.
   Invoc               An integer or variable.
   Term                Any term.

Type
   Debugging

Description

    This predicate allows to generate user-defined debugger ports,
    thus enhancing the debugger's basic box model with application-
    specific checkpoints.

    When the debugger is on, this predicate causes a trace line to
    be displayed with Port being the name of the debugger port,
    invocation number Invoc and Term in the goal position.

    If Invoc is left uninstantiated, it will be instantiated to a
    unique invocation number by the system, if it is an integer, it
    will be used. This way, several ports can be made to share the
    same invocation number, which makes it possible to easily i-skip
    from one to the other.



Modes and Determinism
   trace_point_port(+, +, ?) is det
   trace_point_port(+, -, ?) is det

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Examples
   
    :- pragma(nodebug).
    bool(B) :-
	trace_point_port(try_zero, Invoc, B=0),  
	(
	    B=0
	;
	    trace_point_port(try_one, Invoc, B=1),
	    B=1
	).
    :- untraceable bool/1.

[eclipse 9]: bool(B).
  (3) 3 TRY_ZERO  B = 0   %> creep

B = 0     More? (;) 
  (3) 3 TRY_ONE  B = 1   %> creep

B = 1
yes.


See Also
   trace_call_port / 3, trace_parent_port / 1, trace_exit_port / 0, spy_term / 2, spy_var / 1, trace / 1
