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.

  1. 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.
    Invoke the IBM z/OS Debugger JCL Wizard.
  2. 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.
    View the field help for the LE Program field.
    The field help for the LE Program field is displayed.
    Field help for LE Program
    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.

  3. 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.
    Specify optional parameters.
  4. 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 a LOAD 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 the PROGRAM-ID for COBOL, the first CSECT for assembler, or the label defined on the MAIN 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.
    Set breakpoints.
  5. 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.
    Select only one program or procedure to debug.
  6. JCL statements are generated to invoke z/OS Debugger.
    The JCL is generated.
    • 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 the EQACMD command file DD name, and the VTAM% 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.
    You can also use the IBM z/OS Debugger JCL Wizard to create IBM® z/OS Debugger invocation of Db2, or IMS batch JCL or procedures.

What to do next

You can now invoke a debug session with the Terminal Interface Manager:
  1. Start the Terminal Interface Manager.
  2. Sign on to the Terminal Interface Manager with your user ID and password.
  3. Submit the job.
If the Terminal Interface Manager does not start a debug session, verify that the job is not waiting for an initiator, or did not fail with a JCL error.