Qualifying variables
load_name::>cu_name:>block_name:>object
This procedure, known as explicit qualification, lets z/OS® Debugger know
precisely where the variable is.If required, load_name is the load module
name. It is required only when the program consists of multiple load
modules and when you want to change the qualification to other than
the current load module. load_name can be
the z/OS Debugger variable %LOAD.
If required, cu_name is the compile unit
name. The cu_name is required only when
you want to change the qualification to other than the currently qualified
compile unit. cu_name can be the z/OS Debugger variable %CU.
If required, block_name is the program
block name. The block_name is required only
when you want to change the qualification to other than the currently
qualified block. block_name can be the z/OS Debugger variable %BLOCK.
- In PL/I, the primary entry name of the external procedure is the
same as the compile unit name. When qualifying to the external procedure,
the procedure name of the top procedure in a compile unit fully qualifies
the block. Specifying both the compile unit and block name results
in an error. For example:
is valid.LM::>PROC1:>variable
is not valid.LM::>PROC1:>PROC1:>variable
- You must specify the full function qualification including formal
parameters where they exist. For example:
- For function (or block) ICCD2263() declared as void ICCD2263(void)
within CU "USERID.SOURCE.LISTING(ICCD226)" the correct block specification
for C++ would
include the parenthesis () as follows:
qualify block %load::>"USERID.SOURCE.LISTING(ICCD226)":>ICCD2263() - For CU ICCD0320() declared as int ICCD0320(signed long int SVAR1,
signed long int SVAR2) the correct qualification for
AT ENTRYis:AT ENTRY "USERID.SOURCE.LISTING(ICCD0320)":>ICCD0320(long,long)Use the z/OS Debugger command
DESCRIBE CUSto give you the correctBLOCKorCUqualification needed.Use the
LIST NAMEScommand to show all polymorphic functions of a given name. For the example above,LIST NAMES "ICCD0320*"would list all polymorphic functions calledICCD0320.
- For function (or block) ICCD2263() declared as void ICCD2263(void)
within CU "USERID.SOURCE.LISTING(ICCD226)" the correct block specification
for C++ would
include the parenthesis () as follows:
You do not have to preface variables in the currently executing compile unit. These are already known to z/OS Debugger; in other words, they are implicitly qualified.
In order for attempts at qualifying a variable to work, each block
must have a name. Blocks that have not received a name are named by z/OS Debugger, using
the form: %BLOCKnnn, where nnn is
a number that relates to the position of the block in the program.
To find out the name of z/OS Debugger for
the current block, use the DESCRIBE PROGRAMS command.
Refer to the following topics for more information related to the material discussed in this topic.