Qualification rules for Code Debug TSO commands
Module qualification
Code Debug TSO’s breakpoint, program data, and screen manipulation commands will operate on the qualified module unless they are explicitly qualified to another module. For example, if TRIMAINA is the qualified module, entering the following sets a breakpoint to stop before offset +21C+E in TRIMAINA:
To use Code Debug TSO commands in a module that is not the qualified module, you must use a single colon (:) to explicitly qualify the module name. For example, if the qualified module is TRIMAINA and you want to set a before breakpoint to stop before label ZEROIT in module TRITSTA, the following would be entered:
You can make a module the qualified module using the SOURCE command. For example, if the qualified module is TRIMAINA and you enter the following:
TRITSTA becomes the qualified module. You can then set breakpoints and perform debugging functions in TRITSTA.
TRITSTA becomes the qualified module with a before breakpoint set at the label ADDIT and a keep window opened for the data label TSTREC.
The SOURCE command lets you see to a module by the CSECT name or entry name if the module is already loaded. You can also see to a module by the name of the load module if the module is the link-edited entry point in the load module.
Load module qualification
To perform debugging functions in a program/module that has a duplicate copy link edited into a different load module or a statically linked version and a dynamically linked version of the same program/module, you must use load module qualification. Load module qualification consists of using double colons (::).
For example, to set a module breakpoint in TRIRPTA in load module MAINPGM, use a combination of load module qualification (::) and module qualification (:).
Label qualification
Code Debug TSO data manipulation commands (KEEP, PEEK, MOVE, etc.) allow the use of label qualification. High Level Assembler allows the use of “labeled” usings. A period (.) notation refers to a field within a DSECT or CSECT and the base register to be used. For example, CUSTOMER.LASTNAME and EMPLOYEE.LASTNAME both see to the same field (LASTNAME) in a DSECT or CSECT. The first example will access LASTNAME with a base register identified on the using labeled CUSTOMER. The second example will use the base register identified on the using labeled EMPLOYEE.
To set a keep on the field LASTNAME that the command addressed using a base register identified on the using labeled EMPLOYEE. For example: