External Symbol Dictionary (ESD)

This section of the listing contains the external symbol dictionary information passed to the linkage editor or loader, or z/OS® Program Management Binder, in the object module.

This section helps you find references between modules in a multimodule program. The ESD might be helpful in debugging the running of large programs constructed from several modules.

The ESD entries describe the control sections, external references, classes, parts, and entry points in the assembled program. There are nine types of ESD entries (SD, ED, LD, ER, PC, PR, CM, XD, and WX). Table 1 shows the ESD entries when you specify the NOGOFF option. Table 2 shows the ESD entries when you specify the GOFF option. For each of the different types of ESD entries, an X indicates which of the fields have values.
Table 1. Types of ESD entries when NOGOFF option specified
SYMBOL TYPE ID ADDR LENGTH Owner ID FLAGS
X SD X X X   X
X LD   X   X  
X ER X        
  PC X X X   X
X CM X X X   X
X XD X X X    
X WX X        
Table 2. Types of ESD entries when GOFF option specified
SYMBOL TYPE ID ADDR LENGTH Owner ID FLAGS
X SD X       X1
X ED X X X X X
X LD X X   X X
X PR X X X X X
X ER X     X  
X CM X X   X X
X XD X X X    
X WX X     X  
Note:
  1. Only if the SD ESDID entry is associated with CM ESDID entry.

Figure 1 is an example of the External Symbol Dictionary generated with the GOFF assembler option, and is followed by a description of its contents.

Note: This sample is intended to show the various fields and possible values and is not meant to be an actual listing.
Figure 1. External Symbol Dictionary listing
                                              External Symbol Dictionary                                       Page    3
 1       2      3        4        5         6       7      8 

Symbol   Type   Id     Address  Length   Owner Id Flags Alias-of                            HLASM R6.0  2015/02/20 18.42
SAMP01    SD 00000001
B_IDRL    ED 00000002                    00000001
B_PRV     ED 00000003                    00000001
B_TEXT    ED 00000004 00000000 0000006C  00000001   00
SAMP01    LD 00000005 00000000           00000004   00
ENTRY1    LD 00000006 00000000           00000004   00
DateRcvd  ER 00000007                    00000001       RCNVDATE
RCNVTIME  ER 00000008                    00000001
 1 
The name of every external dummy section, control section, entry point, external symbol, part, and class. If the external dummy section, control section, entry point, part, or external symbol has a corresponding ALIAS instruction, the symbol shows the operand of the ALIAS instruction.

When you specify the GOFF assembler option on z/OS or CMS, the assembler generates two ED entries, the first with a symbol name of B_PRV and the second with a symbol name of B_TEXT.

 2 
The type designator for the entry, as shown in the table:
SD
Control section definition. The symbol appeared in the name field of a START, CSECT, or RSECT instruction.

When you specify the GOFF assembler option, on z/OS or CMS, the assembler generates an SD entry type for the symbol which appears in the field name of a COM instruction.

LD
Label definition. The symbol appeared as the operand of an ENTRY statement.

When you specify the GOFF assembler option, on z/OS or CMS, the assembler generates an entry type of LD for each CSECT and RSECT name.

ER
External reference. The symbol appeared as the operand of an EXTRN statement, or appeared as an operand of a V-type address constant.
PC
Unnamed control section definition (private code). A CSECT, RSECT, or START statement that commences a control section that does not have a symbol in the name field, or a control section that is commenced (by any instruction which could depend on, or could affect or be affected by the location counter) before a CSECT, RSECT, START, DSECT, or COM.

When you specify the GOFF assembler option, on z/OS or CMS, the assembler does not generate an LD entry for a private code section. For private code, the assembler creates an SD entry type with a blank name.

PR
Part definition. The symbol appeared in the PART parameter of a CATTR statement.
CM
Common control section definition. The symbol appeared in the name field of a COM statement.
XD
External dummy section. The symbol appeared in the name field of a DXD statement or the operand of a Q-type address constant.
The external dummy section is also called a pseudo register in the applicable Linkage Editor and Loader document, and z/OS MVS Program Management: User's Guide and Reference.
Note: For an external dummy section, there is no associated address. The address field in the External Symbol Dictionary is used instead to show the alignment mask value, which is one less than the alignment boundary.
WX
Weak external reference. The symbol appeared as an operand in a WXTRN statement.
ED
Element definition (one for each class). The symbol appeared as an operand in a CATTR statement.

When you specify the NOGOFF assembler option, on z/OS or CMS, the assembler does not generate an entry type of ED.

For further information, refer to z/OS MVS Program Management: Advanced Facilities.

 3 
The external symbol dictionary identification number (ESDID). The number is a unique eight-digit hexadecimal number identifying the entry.
 4 
The address of the symbol (in hexadecimal notation) for SD- and LD-type entries, and spaces for ER- and WX-type entries. For PC- PR- and CM-type entries, it indicates the beginning address of the control section. For XD-type entries, it indicates the alignment with a number one less than the number of bytes in the unit of alignment. For example, 7 indicates doubleword alignment.
 5 
The assembled length, in bytes, of the section, element, or DXD (in hexadecimal notation).
 6 
The ESDID of the control section in which the LD ID is the ESDID of the following, depending on the type:
LD
The control section in which the label is defined.
ED
The control section to which this element belongs.
CM
The control section in which the common control section is defined.
ER
The control section in which the external reference was declared.
PR
The class to which this part belongs.
 7 
For SD-, PC-, and CM-type entries, this field contains the following flags:
Bit 2:    0  = use the RMODE bit (5)
          1  = RMODE is 64
Bit 3:    0  = use the AMODE bits (6-7)
          1  = AMODE is 64
Bit 4:    0  = Section is not an RSECT
          1  = Section is an RSECT
Bit 5:    0  = RMODE is 24
          1  = RMODE is 31
Bits 6-7: 00 = AMODE is 24
          01 = AMODE is 24
          10 = AMODE is 31
          11 = AMODE is ANY
 8 
When symbol  1  is defined in an ALIAS instruction, this field shows the name of the external dummy section, control section, entry point, part, or external symbol of which symbol  1  is an alias.