This section describes the format of simple breakpoint conditions. We first list the tests that can be used to enquire the state of execution. We then proceed to describe the conditions usable in the action part and the options for focusing on past execution states. Finally, we describe condition macros and the format of the values of the debugger action variables.
We distinguish between two kinds of tests, based on whether they refer
to information stored in the backtrace or not. The latter
category, the non-backtraced tests, contains the conditions
related to the current port (port
, bid
, mode
,
show
, command
, get
) and the breakpoint type
selection conditions (advice
and debug
). All remaining
tests refer to information stored in the backtrace.
Non-backtraced tests will raise an exception, if they appear in
calls to execution_state/1
from outside the debugger, or in
queries about past execution state, in execution_state/2
.
Backtraced tests are allowed both inside and outside the
debugger. However such tests can fail if the given query is not
meaningful in the given context, e.g. if
execution_state(goal(G))
is queried before any breakpoints
were encountered.
Note that if a test is used in the second argument of
execution_state/2
, the term current, in the
following descriptions, should be interpreted as referring to the
execution state focused on (described by the first argument of
execution_state/2
).