IPVLANGP side file formatting utility

A utility program, IPVLANGP, is provided, which can be used to create a readable listing from one of the following:

  • A LANGX side file.
  • For Enterprise PL/I, a SYSDEBUG side file that is generated by using the PL/I TEST(SEPARATE) or PL/I (NOSEP SOURCE) compiler option.
  • For Enterprise PL/I Version 6 or later a load module that is generated by using the PL/I TEST(NOSEPARATE SOURCE) compiler option.
  • For Enterprise COBOL, a SYSDEBUG side file that is generated by using the COBOL TEST(SEPARATE) option.
  • For Enterprise COBOL Version 5 or later, a program object containing DWARF debugging information generated by using the TEST(SOURCE) or NOTEST(SOURCE) option.
  • For Enterprise COBOL Version 6, a SYSDEBUG side file that is generated by using the COBOL TEST(SEPARATE SOURCE) or NOTEST(SEPARATE SOURCE) option.

This approach might be useful if side files, rather than compiler listings, are kept in order to conserve DASD space. The utility program is able to format the side file or program object debugging information in a way that resembles the original compiler listing.

IPVLANGP can be executed in a number of different ways:
  • As an ISPF option 3.4 (Data Set List Utility) line command against a sequential LANGX side file or COBOL or PL/I SYSDEBUG side file data set, or if the data set is partitioned, as a line command against a member of the data set. For Enterprise COBOL Version 5 and PL/I Version 6, IPVLANGP can also be issued against a program object member of a PDSE load library.

    If a sequential COBOL or PL/I SYSDEBUG side file data set is used, or if the member of a partitioned COBOL or PL/I SYSDEBUG side file data set does not match any PROGRAM-ID named program contained within it, then a prompt is displayed which permits a program name to be specified.

    When a COBOL Version 5 or PL/I Version 6 program object contains more than one compile unit, a prompt is displayed to select the desired program.

    All LANGX side files that are contained in a sequential data set, or a partitioned data set member, are displayed, regardless of whether these match the member name or not.

    The output is written to a temporary data set and displayed using ISPF EDIT.

  • From a Fault Analyzer ISPF interface display, using the Services action-bar pull-down menu, and selecting the IPVLANGP Side File Formatting Utility option. A prompt is displayed, from which you specify the data set to be formatted.

    The output is presented in an ISPF display, but may be copied to a data set using the COPY command.

  • As a batch job, like the following:
    //PRTLANGX JOB ...
    //STEP1    EXEC PGM=IPVLANGP,PARM='parms'
    //SYSPRINT DD   SYSOUT=*

    The PARM string passed to IPVLANGP should contain:

    Figure 1. Syntax
    
    1 PARM='data_set_name?PROG:program_name
    where:
    data_set_name
    The name of a sequential LANGX side file or COBOL or PL/I SYSDEBUG side file data set, or if the data set is partitioned (as is the case for program objects), the data set name with member name included in parentheses.
    Examples:
    MY.SYSDEBUG.SEQ.DS
    MY.IPVLANGX.PDS.DS(MYPROG)
    program_name
    For COBOL, the name of a PROGRAM-ID named program contained within a SYSDEBUG side file or V5 program object. For PL/I, the name of a main PROCEDURE contained within a SYSDEBUG side file or V6 program object.

    The formatted listing is written to the SYSPRINT DD. Normal listing file attributes, such as variable-blocked record format and logical record length of 137, are generally appropriate.

When source code comments contain non-printable characters, specify a LOCALE with an appropriate code set for source code translation. The IPVLANGP header shows the LOCALE and code set that are in effect (see Locale).