These tests can only be used inside the debugger and only when focused
on the current invocation. If they appear in
execution_state/1 called from outside the debugger, an
exception will be raised.
The notion of port in breakpoint handling is more general than outlined earlier in Procedure Box. Here, the following terms are used to describe a port:
call, exit(nondet), exit(det), redo, fail, exception(Exception), block, unblock
Furthermore, the atoms
exception can be
used in the
port condition (see below), to denote either of the two
exit ports and an arbitrary exception port, respectively.
port(exit)holds for both
As explained earlier, the port condition for a non Call port is best placed in the action part. This is because the failure of the action part will cause the debugger to pass through the Call port silently, and to build a procedure box, even in zip mode. The following idiom is suggested for creating breakpoints at non Call ports:
offif no breakpoint was selected.)
modevariable, which normally reflects the current debugger mode.
commandvariable, which is the command to be executed by default, if the breakpoint is selected.
showvariable, i.e. the default show method (the method for displaying the goal in the trace message).
The last three of the above tests access the debugger action
variables. These breakpoint conditions have a different meaning
in the action part. For example, the condition
mode(trace), if it
occurs in the tests, checks if the current debugger mode is
trace. On the other hand, if the same term occurs within
the action part, it sets the debugger mode to
To support the querying of the action variables in the action part, the following breakpoint condition is provided:
). It has this meaning in the action part as well.
conditions, the condition can be replaced by its argument, if that
is not a variable. For example the condition
call can be
used instead of
port(call). Conditions matching the terms
listed above as valid port values will be converted to a
port condition. Similarly, any valid value for the three debugger
action variables is converted to an appropriate condition. These valid
values are described in Action Variables.