HLASM Toolkit Feature Interactive Debug Facility User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


DBREAK

HLASM Toolkit Feature Interactive Debug Facility User's Guide
GC26-8709-07

Sets or clears a deferred instruction breakpoint.
Read syntax diagramSkip visual syntax diagram
>>-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):
  • IDF monitors program loading
  • When IDF detects the module is loaded, (or the TRIGGER LOAD command is issued) a standard instruction breakpoint is established at the location specified within the module.
  • The deferred breakpoint remains active:
    • if the module is later dropped from IDF's module list (and possibly removed from storage), the standard instruction breakpoint is removed automatically.
    • if the module is once again loaded into storage, the deferred breakpoint is again triggered, and a new standard instruction breakpoint established.

    Thus IDF deferred breakpoints may be termed "sticky".

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.
  1. The full syntax for all IDF symbols is:
    Read syntax diagramSkip visual syntax diagram
    >>-+----------------------------+--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.

  2. 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.
  3. 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.
  4. 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.)
  5. 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.
  6. Only use external symbols in a DBREAK address expression.
  7. 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

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014