Interpreting a symbol cross-reference

The example of the symbol cross-reference for the hello.s assembly program.

The following is an example of the symbol cross-reference for the hello.s assembly program:

Symbol          File             CSECT            Line #
.main           hello.s          --                 22
.main           hello.s          .main              28   *
.main           hello.s          --                 29
.main           hello.s          .main              43   *
.printf         hello.s          --                 76
.printf         hello.s          --                104
T.data          hello.s          data               17   *
T.data          hello.s          data               69
T.hello         hello.s          .main              28   *
TOC             hello.s          TOC                23
_helloworld     hello.s          --                 74
_helloworld     hello.s          data              113   *
argarea         hello.s          --                 35   *
argarea         hello.s          --                 40
data            hello.s          --                 17
data            hello.s          data               17   *
data            hello.s          data              111   *
linkarea        hello.s          --                 36   *
linkarea        hello.s          --                 40
locstckarea     hello.s          --                 37   *
locstckarea     hello.s          --                 40
main            hello.s          --                 18
main            hello.s          main               21   *
main            hello.s          main               28
nfprs           hello.s          --                 39   *
nfprs           hello.s          --                 40
nfprs           hello.s          --                 59
nfprs           hello.s          --                 90
ngprs           hello.s          --                 38   *
ngprs           hello.s          --                 40
ngprs           hello.s          --                 59
ngprs           hello.s          --                 90
szdsa           hello.s          --                 40   *
szdsa           hello.s          --                 64
szdsa           hello.s          --                 82
szdsa           hello.s          --                 88

The first column lists the symbol names that appear in the source program. The second column lists the source file name in which the symbols are located. The third column lists the csect names in which the symbols are defined or located.

In the column listing the csect names, a –– (double dash) means one of the following:

  • The symbol's csect has not been defined yet. In the example, the first and third .main (.main[PR]) is defined through line 42.
  • The symbol is an external symbol. In the example, .printf is an external symbol and, therefore, is not associated with any csect.
  • The symbol to be defined is a symbolic constant. When the .set pseudo-op is used to define a symbol, the symbol is a symbolic constant and does not have a csect associated with it. In the example, argarea, linkarea, locstckarea, nfprs, ngprs, and szdsa are symbolic constants.

The fourth column lists the line number in which the symbol is located. An * (asterisk) after the line number indicates that the symbol is defined in this line. If there is no asterisk after the line number, the symbol is referenced in the line.