Breakpoint

Use

Suspends program execution to allow for debugger actions.

Command Syntax

BREAKPOINT [statement-id]
           [[action-list]] 
           [/IF {logical-expr} [/ELSE[action-list]]] 
           [/SKIP=n] 
           [/IGNORE  |  /NIGNORE [/ALL]] 
           [/SILENT  | /NSILENT]

where:

statement-id
Identifies the statement at which the breakpoint will be set or modified
action-list
Specifies a set of one or more CodeWatch commands separated by semicolons.
logical-expr
Can be any expression that may occur in the source language program, including references to simple as well as aggregate (such as array, record, and structure elements) type variables, returning a boolean value.

Description

The BREAKPOINT command is used to set a breakpoint at a specified statement or to modify the characteristics of a breakpoint already set at that statement. If the statement identifier is not specified, the breakpoint will be set at the current execution point; that is, the statement to be executed when program execution is resumed. The maximum number of breakpoints that can be active at one time is 64.

Breakpoints can be set at the entry point (%ENTRY) of external routines that have or have not been compiled in debug mode and at lines containing executable statements within routines that have been compiled in debug mode. Lines containing only comments or declarations, or only the keyword ELSE (else), are not valid breakpoint locations. If you try to set a breakpoint at one of these locations, the debugger will set the breakpoint at the first executable statement after the one named in the command.

Example

In the following example, a breakpoint is set at the entry point of the READ_INPUT procedure with an action list evaluating the value of MAXV.

CodeWatch> B READ_INPUT\%ENTRY [E MAXV] 
CodeWatch> C
Break at PRIMES.READ_INPUT\%ENTRY
MAXV =                10 {fixed binary (31)}

In the following example, a conditional breakpoint is set on line 94. Program execution will stop if the variable COUNT is greater than 3; otherwise, the debugger will evaluate COUNT and continue.

CodeWatch> B SIFT\94 /IF {COUNT>3} /ELSE [E COUNT] 
CodeWatch> CONTINUE
COUNT =              1 {fixed binary (31)}
COUNT =              2 {fixed binary (31)}
COUNT =              3 {fixed binary (31)}
Break at PRIMES.SIFT\94