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 09/08/2019 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 Timestamp
and Version Information
section of the listing as well as
to the PPA4
section.
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
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
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)
0014E4
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 storage (the Initial Heap Storage
Map
and Below The Line Storage Map
sections). The offset
to the PPA4
is recorded in a field of the PPA2
.
PPA4: Entry Point Constants
000710 22000000 =F'570425344' Flags 1
000714 00020100 =F'131328' Flags 2
000718 00000000 =F'0' A(NORENTstatic)
00071C 00000000 =F'0' Q(RENTstatic)
000720 0000006C =F'108' A(DATA31_address_cell-RENTstatic)
000724 FFFFF8F0 =F'-1808' A(Code-PPA4)
000728 00000760 =F'1888' Code Length
00072C 00000000 =F'0' Length NORENTstatic
000730 00000070 =F'112' Length RENTstatic
000734 00000094 =F'148' Length DATA31
000738 003F =X'3F' A(CUName-PPA4)
00073A 0000 =X'0' PPA4 Minor Ver
000744 7FFFFFFF =X'7FFFFFFF' Offset UsrWrkStrg
000748 00000000 =X'0' Length UsrWrkStrg
00074C 00 =X'0' Has Externals
00074D 0000 =X'0' A(SYSDEBUGName-PPA4)
PPA4 End
- (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.
WORKING-STORAGE SECTION changes (Enterprise COBOL for z/OS Migration Guide)
z/OS Language Environment Vendor Interfaces