B or BA - establish breakpoint.

Syntax:

b[ <address>[op][;count][,<address>[op][;count]]*]

(or BA for absolute addresses)

Examples:

b 1723,1727:eq:;10
b shells+30:ne:;5,compar+10:eq:,printf+2
ba 423
b

Description:

This command may be used to establish one or more breakpoints in the user's program, or to list breakpoints currently in effect. A breakpoint is a location at which the trace package will regain control when the instruction at that location is executed. At each such time, the following message will be issued:

NNNNNN: BREAKPOINT

where NNNNNN is the address of the breakpoint, minus the offset if one has been previously established. (An address may be an octal number, a symbolic name (if the program being traced has symbol tables), or any number of these combined with '+' or '-' operators; see "expl trace expression" for details.) Following issuance of this message, the trace package will respond with a question mark (?), which is an implicit request to enter the first command. When the next run or execute command is given, the original instruction at the breakpoint location will be executed.

A breakpoint can be established at any location which contains a legal instruction (drl included); however, the location cannot be one which is influenced by a repeat-type instruction.

Permissible forms of the command are as follows:

FORM               MEANING
b A1,A2,...,An     break at each effective address
                   offset+Ai
ba A1,A2,...,An    break at each absolute address Ai.
b                  display breakpoints (same as "show")

In some instances, it may be desirable to have a breakpoint serviced only if certain conditions exist. Such a breakpoint may be specified by appending a relational operator of the form :rel: to the address, Ai. The conditions are based on indicator register status at the time the breakpoint location is executed. The following table describes the various operators and their related meaning:

OPERATOR    WILL CAUSE BREAKPOINT SERVICING ONLY IF
:eq:        zero indicator is on
:ne:        zero indicator is off
:lt:        negative indicator is on
:le:        negative or zero indicator is on
:gt:        negative and zero indicators are off
:ge:        negative indicator is off
:llt:       carry indicator is off
:lle:       carry indicator is off or zero indicator is on
:lgt:       carry indicator is on and zero indicator is off
:lge:       carry indicator is on

See Also:

expl trace at
For how to have an action take place at a breakpoint.
expl trace expression
For more information on expressions.

Copyright © 1996, Thinkage Ltd.