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 and press Enter to invoke the
IBM z/OS Debugger JCL
Wizard. Alternatively, enter EQAJCL
T to skip step 2 and open the parameters panel directly.

- In the z/OS Debugger JCL Wizard Option Selection panel, select
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.The field help for the LE Program field is displayed.
The field help indicates that you enter YES if the program invoked by the
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
CALLor aLOADstatement 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-IDfor COBOL, the firstCSECTfor assembler, or the label defined on theMAINprocedure 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 PGMstatement 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
//CEEOPTSstatement defines theEQACMDcommand fileDDname, and theVTAM%user ID information that is used to invoke the Terminal Interface Manager. - The
SET LOG OFFcommand 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.