Sets or clears a deferred instruction breakpoint.
![Read syntax diagram](./c.gif)
>>-DBREak--+---------+--+----------------+---------------------><
'-address-' | .------------. |
| V | |
'---|--command-+-'
- address
- An address.
If an expression, the expression is used to provide the address.
If omitted, the address is determined
from the cursor position.
If it is not possible
to determine an address from the cursor position (for example,
when the cursor is on the command line and the command line is empty),
the Break window is opened if it is not already open, or closed if it is
open.
- command
- A command to be executed.
This function is a variation of the BREAK function (see
BREAK).
Breakpoints established with this command are placed in a special IDF
table.
If an address is supplied, either as an expression on the command
line or by means of cursor position, a deferred breakpoint is set
at that address.
If a breakpoint or a watchpoint is already set at the specified
address, it is cleared. The DBREAK command acts as a
toggle to turn a breakpoint on or off.
(The OLDBREAK option is available to disable
the toggle style of operation.
If OLDBREAK is set and the DBREAK command is used against an address
where a breakpoint is already set, an error message is issued.)
The DBREAK command only works on TSO if the SVC97 option is
in force.
If the module containing the deferred breakpoint is
not
in storage (or defined to IDF):
If the module containing the deferred breakpoint is
in storage, the initial monitoring of program loading is
bypassed.
If any deferred breakpoints are active, they are shown in a special
section of the Break window.
See
BREAK
for details regarding the operation of the Break window.
- The full syntax for all IDF symbols is:
![Read syntax diagram](./c.gif)
>>-+----------------------------+--SYMbol----------------------->
+-(section-name)-------------+
'-(module-name.section-name)-'
>--+-----------------+-----------------------------------------><
'-+- + -+--offset-'
'- - -'
With most other IDF commands, you are working within the qualified
module.
This is the default module name if module-name is omitted
from the symbol specification.
The QUALIFY command makes the module you are
about to load the default module.
If this is not done, you must be careful to explicitly
specify the correct module name in the DBREAK command parameter.
For dynamically loaded programs, see also LANGUAGE LOAD.
- Deferred breakpoints are normally for modules not yet in storage.
In this case, the expression must specify a symbolic address, since the
base address of a module is not known until after it is
loaded by another program or command.
- Each time a new module is encountered, the module name is checked.
If it matches the name of one of the desired modules, IDF then attempts
to load the symbol table (from the Load Module on z/OS,
from the MAP
file on CMS, from the librarian MAP member in z/VSE).
If this fails, IDF ignores the module.
- If no section or symbol is specified, the default is to establish
the breakpoint at the entry point of the module.
For example, to insert a deferred breakpoint at the entry point of
the module MOD1, the command is:
DBREAK (MOD1.)
- DBREAK supports an extension to the standard IDF symbol syntax.
If * is specified as the module name, the deferred breakpoint
is triggered whenever a new module is loaded.
- Only use external symbols in a DBREAK address expression.
- While hexadecimal or decimal offsets may be used, this is not
encouraged.
The definition of specific external symbols for use as deferred
breakpoint locations ensures that operation are not affected as
section sizes (and hence offsets) change over the course of program
development.
Return codes
- 0
- Operation successful
- 5
- Syntax or other error in expression