The TEST option specifies the level of testing capability that the compiler generates as part of the object code. You can use this option to control the location of test hooks and to control whether to generate a symbol table.
.-NOTEST-----------------------------. | .-+---+--------------. | | | '-,-' | | | V .-ALL---. | | >>-+-TEST--(----+-+-STMT--+------+-+--)-+---------------------->< | +-PATH--+ | | +-BLOCK-+ | | '-NONE--' | | .-SYM---. | +-+-NOSYM-+------+ | .-HOOK---. | +-+-NOHOOK-+-----+ | .-NOSEPARATE-. | +-+-SEPARATE---+-+ | .-SEPNAME---. | '-+-NOSEPNAME-+--'
ABBREVIATIONS: AALL, ACICS, AMACRO, ASQL
If a statement has multiple labels, only one hook is inserted.
For IBM® 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.
If your program contains GET or PUT DATA statements, the separate debug file will contain less debug information because those statements require that symbol table information be placed into the object deck.
The generated debug information always includes a compressed version of the source that is passed to the compiler. This means that the source might be specified by using SYSIN DD *, or that the source might be a temporary data set that is created by an earlier job step (for example, the source might be the output of the old SQL or CICS® precompilers). The suboptions that you specify for the LISTVIEW option control the content of the source.
If SEPARATE is used in a batch compilation, the JCL for that compilation must include a DD card for SYSDEBUG that must name a data set with RECFM=FB and with 80 <= LRECL <= 1024.
This suboption cannot be used with the LINEDIR compiler option.
Under this option, the generated debug information will not include a compressed version of the source passed to the compiler. This means that the source must in a data set that can be found by Debug Tool when you try to debug the program.
This option is ignored if the SEPARATE option is not in effect.
This option is ignored if the SEPARATE option is not in effect.
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.
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 Debug Tool. These tables might substantially increase the size of the object module unless the TEST(SEPARATE) option is in effect. When the automonitor feature of Debug Tool is activated, these tables are 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 is also displayed; however, if the target has not been initialized or assigned previously, its value is meaningless.
Any variable declared with an * for its name is not visible when you use Debug Tool. Additionally, if an * is used as the name of a parent structure or substructure, all of its children are also invisible. Therefore, it might be better to use a single underscore for the name of any structure elements that you want to leave "unnamed".