7.9 Breakpoint Conditions

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, then 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).