Rational Developer for System z
Enterprise PL/I for z/OS, Version 3.8, Programming Guide

TEST

The TEST option specifies the level of testing capability that the compiler generates as part of the object code. It allows you to control the location of test hooks and to control whether or not the symbol table will be generated.

Read syntax diagramSkip visual syntax diagram   .-NOTEST-----------------------------.
   |          .-+---+--------------.    |
   |          | '-,-'              |    |
   |          V   .-ALL---.        |    |
>>-+-TEST--(----+-+-STMT--+------+-+--)-+----------------------><
                | +-PATH--+      |
                | +-BLOCK-+      |
                | '-NONE--'      |
                | .-SYM---.      |
                +-+-NOSYM-+------+
                | .-HOOK---.     |
                +-+-NOHOOK-+-----+
                | .-NOSEPARATE-. |
                +-+-SEPARATE---+-+
                | .-SEPNAME---.  |
                '-+-NOSEPNAME-+--'
 

ABBREVIATIONS: AALL, ACICS, AMACRO, ASQL

STMT
Causes the compiler to generate a statement table, and if the HOOK suboption is in effect, inserts hooks at statement boundaries and block boundaries
PATH
Causes the compiler to generate a statement table, and if the HOOK suboption is in effect, tells the compiler to insert hooks:
BLOCK
Causes the compiler to generate a statement table, and if the HOOK suboption is in effect, tells the compiler to insert hooks at block boundaries (block entry and block exit).
ALL
Causes the compiler to generate a statement table, and if the HOOK suboption is in effect, inserts hooks at all possible locations and generates a statement table.
Note:
Under opt(2), hooks are set only at block boundaries.
NONE
No hooks are put into the program.
SYM
Creates a symbol table that allows you to examine variables by name.
NOSYM
No symbol table is generated.
NOTEST
Suppresses the generation of all testing information.
HOOK
Causes the compiler to insert hooks into the generated code if any of the TEST suboptions ALL, STMT, BLOCK or PATH are in effect.
NOHOOK
Causes the compiler not to insert hooks into the generated code.

For Debug Tool to generate overlay hooks, one of the suboptions ALL, PATH, STMT or BLOCK must be specified, but HOOK need not be specified, and NOHOOK would in fact be recommended.

If NOHOOK is specified,ENTRY and EXIT breakpoints are the only PATH breakpoints at which Debug Tool will stop.

SEPARATE
Causes the compiler to place most of the debug information it generates into a separate debug file. Using this option will substantially reduce the size of the object deck created by the compiler when the TEST option is in effect.

If your program contains GET or PUT DATA statements, the separate debug file will contain less debug information since those statements require that symbol table information be placed into the object deck.

The generated debug information will always include a compressed version of the source passed to the compiler. This means that source may be specified via SYSIN DD * or that the source may be a temporary dataset created by an earlier job step (for example, the source may be the output of the old SQL or CICS precompilers).

If this suboption is used in a batch compile, then the JCL for that compile must include a DD card for SYSDEBUG which must name a dataset with RECFM=FB and with 80 <= LRECL <= 1024.

This suboption may not be used with the LINEDIR compiler option.

NOSEPARATE
Causes the compiler to place all of the debug information it generates into the object deck.

Under this option, the generated debug information will not include a compressed version of the source passed to the compiler. This means that source must in a dataset that can be found by DebugTool when you try to debug the program.

SEPNAME
Causes the compiler to place the name of the separate debug file into the object deck.

This option is ignored if the SEPARATE option is not in effect.

NOSEPNAME
Causes the compiler not to place the name of the separate debug file into the object deck.

This option is ignored if the SEPARATE option is not in effect.

Note:

Specifying TEST(NONE,NOSYM) causes the compiler to set the option to NOTEST.

Use of TEST(NONE,SYM) is strongly discouraged, and it is unclear what is intended when you specify these settings. You would probably be much better off if you specified TEST(ALL,SYM,NOHOOK) or TEST(STMT,SYM,NOHOOK).

Any TEST option other than NOTEST and TEST(NONE,NOSYM) will automatically provide the attention interrupt capability for program testing.

If the program has an ATTENTION ON-unit that you want invoked, you must compile the program with either of the following:

Note:
ATTENTION is supported only under TSO.

The TEST option will imply GONUMBER.

Because the TEST option can increase the size of the object code and can affect performance, you might want to limit the number and placement of hooks.

If the TEST option is specified, no inlining will occur.

Structures with REFER are supported in the symbol table.

If TEST(SYM) is in effect, the compiler will generate tables to enable the automonitor feature of DebugTool. These tables may substantially increase the size of the object module unless the TEST(SEPARATE) option is in effect. When the automonitor feature of DebugTool is activated, these tables will be used to display the values of the variables used in a statement before the statement executes - as long as the variable has computational type or has the attribute POINTER, OFFSET or HANDLE. If the statement is an assignment statement, the value of the target will also be displayed; however, if the target has not been initialized or assigned previously, its value will be meaningless.

Any variable declared with an * for its name will not be visible when using DebugTool. Additionally, if an * is used as the name of a parent structure or substructure, then all of its children will also be invisible. For these purposes, it might be better to use a single underscore for the name of any structure elements that you wish to leave "unnamed".

As an example of the differing effects of the AFTERMACRO, AFTERSQL and AFTERALL suboptions suppose the PP option was PP( MACRO('INCONLY'), SQL, MACRO). Then:


Terms of use | Feedback

This information center is powered by Eclipse technology. (http://www.eclipse.org)