Debugging a Language Environment program using Terminal Interface Manager
You can use IBM z/OS Debugger JCL Wizard to create JCL statements to debug a Language Environment program by using the Terminal Interface Manager.
- In ISPF Edit or Browse, enter EQAJCL T and press Enter to invoke
the Terminal Interface Manager. Alternatively, you can enter
EQAJCL to display the z/OS Debugger JCL Wizard Option Selection panel
and then enter T.
- In the parameters panel, specify YES in the LE Program field. To view the field help that is associated with the LE Program field, place the cursor in the field and press PF1.
EXEC PGM=
statement is Language Environment enabled and enter NO if the program is not Language Environment enabled.Programs that are Language Environment enabled are linked with the Language Environment library that generally ends in SCEELKED.- Enterprise COBOL and PL/I programs are Language Environment enabled.
- Assembler programs and VS COBOL II programs might or might not be Language Environment enabled.
- OS/VS COBOL programs are not Language Environment enabled.
If the LE Program field is set incorrectly, z/OS Debugger will not be invoked.
To select an optional parameter, specify a forward slash (/) in the field.
In this use case, At Entry, Automonitor on, and Intercept on are selected.- Since you chose to set AT ENTRY breakpoints for subprograms, the Request AT ENTRY
Sub-Program Breakpoints panel is displayed. If you are saving your settings or using the
remote debugger, AT ENTRY breakpoints are remembered between debug sessions. To clear previous AT
ENTRY breakpoints before setting new ones, enter the forward slash (/) in the field.Note: z/OS subprograms can be linked as static or dynamic. A static subprogram is included in the load module of the main program. A dynamic program is not included in the load module of the main program, but dynamically loaded into storage when the first
CALL
or aLOAD
statement is issued. If you are using the remote debugger, and the load module name is different than the program name. Be sure to enter the load module name to identify the correct AT ENTRY breakpoint. A program name is thePROGRAM-ID
for COBOL, the firstCSECT
for assembler, or the label defined on theMAIN
procedure of a PL/I program. For statically linked modules, you need the load module name of the main program, and the program name of the subprogram name where you want to stop. - In the Program/Procedure Selection List panel, a list of job steps is
displayed if more than one
EXEC PGM
statement is found in the JCL or procedure. Select only one program or procedure to debug. - JCL statements are generated to invoke z/OS Debugger.
- The first and last generated lines are comment lines. Do not modify these comment lines. The comment lines explain how to locate a program, and set breakpoints before invocation of the subprogram for the Terminal Interface Manager.
- The
//CEEOPTS
statement defines theEQACMD
command fileDD
name, and theVTAM%
user ID information that is used to invoke the Terminal Interface Manager. - The
SET LOG OFF
command indicates you do not want to retain log information. Previous AT ENTRY breakpoints are cleared, and breakpoints for subprograms SAM2 and SAM3 are set.
What to do next
You can now invoke a debug session with the Terminal Interface Manager:
- Start the Terminal Interface Manager.
- Sign on to the Terminal Interface Manager with your user ID and password.
- Submit the job.