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.
.-NOTEST-----------------------------. | .-+---+--------------. | | | '-,-' | | | V .-ALL---. | | >>-+-TEST--(----+-+-STMT--+------+-+--)-+---------------------->< | +-PATH--+ | | +-BLOCK-+ | | '-NONE--' | | .-SYM---. | +-+-NOSYM-+------+ | .-HOOK---. | +-+-NOHOOK-+-----+ | .-NOSEPARATE-. | +-+-SEPARATE---+-+ | .-SEPNAME---. | '-+-NOSEPNAME-+--'
ABBREVIATIONS: AALL, ACICS, AMACRO, ASQL
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.
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.
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.
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.
If the program has an ATTENTION ON-unit that you want invoked, you must compile the program with either of the following:
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: