SET QUALIFY command

Simplifies the identification of references and statement numbers by resetting the point of view to a new block, compile unit, or load module. In full-screen mode this affects the contents of the Source window. If you are currently viewing one compile unit in your Source window and you want to view another, enter the SET QUALIFY command to change the qualification. The SET keyword is optional. The QUALIFY keyword can be abbreviated.

Read syntax diagramSkip visual syntax diagramSETQUALIFYBLOCKblock_specCUPROGRAMcu_specaddressLOADload_specRESETRETURNUP;
BLOCK
Sets the current point of view to the specified block.
block_spec
A valid block specification.
CU
Sets the current point of view to the specified compile unit. CU is equivalent to PROGRAM.
cu_spec
A valid compile unit specification.
address
An address within the CU that you want to qualify to.
PROGRAM
Is equivalent to CU.
LOAD
Sets the current point of view to the specified load module.
load_spec
A valid load module specification. If omitted, the initial (primary) load module qualification is used.
RESET
Resets qualification to the block of the suspended program and (if the SCREEN setting is ON) scrolls the Source window to display the current statement line.
RETURN
Switches qualification to the next higher calling program.
UP
Switches qualification up one lexical level to the statically containing block.

Usage notes

  • In the Source window, you can type over the name displayed in the SOURCE field of the header area, then press Enter. z/OS® Debugger creates and runs the corresponding SET QUALIFY CU command.
  • If SET PROGRAMMING LANGUAGE AUTOMATIC is in effect (that is, HOLD is not in effect), changing the qualification automatically sets the current programming language to the specified block or compile unit.
  • If you are debugging a program that has multiple enclaves, you can issue the SET QUALIFY command only for the following items:
    • Load modules, compile units, and blocks that are known to z/OS Debugger and are in the current enclave
    • Load modules, compile units, and blocks that are not known to z/OS Debugger
    • Non-Language Environment® assembler compile units in a higher-level enclave
    You cannot issue the SET QUALIFY command for a load module that is part of a higher-level enclave. You cannot issue the SET QUALIFY command for compile units in a higher-level enclave unless the compile unit is non-Language Environment.
  • The SET QUALIFY command does not imply a change in flow of control when the program is resumed with the GO command.
  • The SET QUALIFY command cannot modify the point of view to a z/OS Debugger or library block.
  • SET QUALIFY LOAD will not change the results of the QUERY QUALIFY command.
  • If you specify cu_spec as a CU name without a load module name, z/OS Debugger searches for the CU in the following order:
    1. CUs in the currently qualified load module.
    2. All known CUs.
    3. A CU by the specified name in a load module of the same name.
  • When you use SET QUALIFY address, address can be any address within the corresponding CU. This form can be especially useful when qualifying to a CU within a non-reentrant load module, when more than one copy of the load module exists in memory.
  • If you enter the SET QUALIFY LOAD command or SET QUALIFY CU command and specify the name of a load module that is not currently known to z/OS Debugger, z/OS Debugger runs an implicit LOAD command for the load module. If the implicit LOAD is successful, implicit CUs are created for the following types of programs:
    • All CUs in the load module except COBOL and disassembly CUs
    • If SET DISASSEMBLY ON is in effect, disassembly CUs
    • If the entry point of the load module is a disassembly program, regardless of the setting of SET DISASSEMBLY.
    With implicit CUs, you can do debugging tasks such as setting breakpoints and browsing the source of the CU. When you run the program by entering a command such as GO or STEP, the implicitly loaded modules are deleted, any breakpoints created in the implicitly created CUs are suspended, and all implicitly created CUs are destroyed. If the CU is later created during normal program execution, the suspended breakpoints are reactivated.
  • You cannot use the SET QUALIFY LOAD or SET QUALIFY CU command to implicitly load a DLL.
  • If you enter a SET QUALIFY CU command that specifies the name of a COBOL CU that has not yet been created because the CU has not been run, z/OS Debugger creates an implicit CU. With implicit CUs, you can do debugging tasks such as setting breakpoints and browsing the source of the CU. When you run the program by entering a command such as GO or STEP, any breakpoints created in the implicitly created CUs are suspended and all implicitly created CUs are destroyed. If the CU is later created during normal program execution, the suspended breakpoints are reactivated.
  • If you stop in an enclave where Language Environment is not yet active, you cannot use SET QUALIFY LOAD or SET QUALIFY CU commands to load a Language Environment load module or to create a Language Environment compile unit. You can only use these commands to load a Language Environment load module or create a Language Environment compile unit after Language Environment has been initialized in the current enclave.
  • You can use the SET QUALIFY CU and SET QUALIFY LOAD commands in remote debug mode. However, these commands in remote debug mode do not set the current point of view to the specified compile unit or specified load module. Instead, the user should receive a message similar to 'EQA2476I An implicit LOAD was issued for module module_name' in the Debug Console. The user must select the specified compile unit or load module in the Modules view to update the current point of view.

Examples

  • Indicate to z/OS Debugger that the load module statmod should be used when no load module is specified.
    SET QUALIFY LOAD statmod;
  • Set the qualification back to the point of the suspended program.
    SET QUALIFY RESET;
  • Set the block qualification to blockx. As a result, the load module qualification and compile unit qualification will be updated to the load module and compile unit that contain the block blockx.
    SET QUALIFY BLOCK blockx;

Refer to the following topics for more information related to the material discussed in this topic.