Example: Program prolog areas

The following example shows LIST output for the program prolog area. The Program Prologue Area (PPA) is comprised of several sections that contain information about the compiled program.

There is a PPA1 for every procedure in your program, including procedures generated by the compiler. The offset to its corresponding PPA1 is recorded at offset 12 (X'C') from the start of each procedure. The PPA1 contains information about the procedure as well as offsets to the PPA2 and PPA3 sections.

For details on how to use the program prolog areas to locate information in the listing file, see z/OS® Language Environment® Vendor Interfaces.


DATA VALIDATION AND UPDATE PROGRAM    IGYTCARA Date Start of change03/18/2016End of change Time 10:48:16

     1        2                                                           3            4
                      PPA1:  Entry Point Constants
  0081E0  1CCEA506                                               =F'483304710'      Flags
  0081E4  00008310                                               =A(PPA2-IGYTCARA)
  0081E8  00008378                                               =A(PPA3-IGYTCARA)
  0081EC  00000000                                               =F'0'              No EPD
  0081F0  FFFE0000                                               =F'-131072'        Register Save Mask
  0081F4  40000000                                               =F'1073741824'     Member Flags
  0081F8  90                                                     =AL1(144)          Flags
  0081F9  000978                                                 =AL3(2424)         Callee's DSA use/8
  0081FC  0000                                                   =AL1(0)            Flags
  0081FE  0012                                                   =H'18'             Offset/2 to CDL
  008200  D00006D0                                               =F'-805304624'     State variable location
  008204  00000000                                               =F'0'              CDL function length/2
  008208  00000000                                               =F'0'              CDL function EP offset
  00820C  00000000                                               =F'0'              CDL prolog
  008210  00000000                                               =F'0'              CDL epilog
  008214  00000000                                               =F'0'              CDL end
  008218  0008  ****                                             AL2(8),C'IGYTCARA'
                     PPA1  End

There is one PPA2 for each program. The offset to the PPA2 is recorded in each PPA1. The PPA2 contains offsets to the Time Stamp and Version Information section of the listing as well as to the PPA4 section.

Start of changeIf the TEST option is not in effect, the PPA2 section looks like this:
                     PPA2:  Entry Point Constants
  000800  04002203                                               =F'67117571'       Flags
  000804  FFFFF800                                               =A(CEESTART-PPA2)
  000808  00000058                                               =F'88'             A(PPA4-PPA2)
  00080C  FFFFFFB0                                               =A(TIMESTMP-PPA2)
  000810  FFFFF800                                               =A(PrimaryEntryPoint-PPA2)
  000814  02200000                                               =F'35651584'       Flags
                     PPA2  End
End of change
Start of changeIf the TEST option is in effect, the PPA2 section looks like this:
                     PPA2:  Entry Point Constants
  000830  04002203                                               =F'67117571'       Flags
  000834  FFFFF7D0                                               =A(CEESTART-PPA2)
  000838  00000058                                               =F'88'             A(PPA4-PPA2)
  00083C  FFFFFFB0                                               =A(TIMESTMP-PPA2)
  000840  FFFFF7D0                                               =A(PrimaryEntryPoint-PPA2)
  000844  02600000                                               =F'39845888'       Flags
                     PPA2  End
End of change

There is one PPA3 for each program (including each nested program) in a COBOL source file. Each entry contains offsets, relative to the PPA3 itself, to the base locator table and to the special register table. The PPA3 also contains an offset from the start of the program to the first COBOL statement.


                    PPA3:  Entry Point Constants
  0014D8  00000000                                               =F'0'               Flags
  0014DC  000000C0                                               =F'192'             A(Base_Locator_Table-PPA3)
  0014E0  000000D8                                               =F'216'             A(Special_Register_Table-PPA3)
  0014E0  00000184                                               =X'184'             A(User_Entry-CUEntry)
                     PPA3  End
              

There is one PPA4 for each program. It has offsets to various compiler generated tables, such as the writable static area ( the Static Map and WSA24 sections). The offset to the PPA4 is recorded in a field of the PPA2.

Start of change
                   PPA4:  Entry Point Constants
  008340  08000000                                               =F'134217728'      Flags 1
  008344  00020100                                               =F'131328'         Flags 2
  008348  00000000                                               =F'0'              A(NORENTstatic)
  00834C  00000000                                               =F'0'              Q(RENTstatic)
  008350  00000000                                               =F'0'              Start of changeA(DATA24_31_address_cell-RENTstatic)End of change
  008354  FFFF7CC0                                               =F'-33600'         A(Code-PPA4)
  008358  00008398                                               =F'33688'          Code Length
  00835C  00000000                                               =F'0'              Length NORENTstatic
  008360  00002204                                               =F'8708'           Length RENTstatic
  008364  00000000                                               =F'0'              Start of changeLength DATA24_31End of change
  008368  002A                                                   =X'2A'             A(CUName-PPA4)
  008372  00000090                                               =X'90'             Offset UsrWrkStrg
  008376  0000000B                                               =X'B'              Length UsrWrkStrg
  00837A  00                                                     =X'0'              Has Externals
                     PPA4  End  

            
End of change
1
Relative location, in hexadecimal format, of the PPA field in the object module
2
The contents of the field, in hexadecimal
3
An assembler-like syntax defining the field
4
A description of the contents of the field.

related references  
z/OS Language Environment Vendor Interfaces
Start of changeWORKING-STORAGE SECTION changesEnd of change (Enterprise COBOL for z/OS Migration Guide)