Example: XREF output: COPY/BASIS cross-references
The following example shows a sorted cross-reference of
copybooks to the library-names and data-set names of the associated copybooks, produced
by the XREF
compiler option under z/OS®. Numbers in parentheses
refer to notes after the example.
COPY/BASIS cross-reference of text-names, library names
(1) (1) (2) (3) (4)
Text-name Library File name Concat ISPF
(Member) (DDNAME) (Data set name) Level Created
ACTIONS OTHERLIB USERID.COBOL.COPY 0 1992/07/11
ACTIONS SYSLIB USERID.COBOL.COPY 0 1992/07/11
CUSTOMER ALTDDXXY USERID.COBOL.LIB3 0 2007/06/01
CUSTOMER SYSLIB USERID.COBOL.LIB2PDSE 1 2007/06/07
HOUSE ALTDDXXY USERID.COBOL.LIB2 1 2007/06/07
HOUSE SYSLIB USERID.COBOL.LIB2PDSE 1
IMOTOR SYSLIB USERID.COBOL.LIB4X 3 2007/06/07
ISOVERFY SYSLIB USERID.COBOL.COPY 0
NSMAP SYSLIB USERID.COBOL.LIB3 2
- (1)
- Text-name and library (an abbreviation for library-name) are from
the statement
COPY text-name OF library-name
in the source, for example,Copy ACTIONS Of OTHERLIB
. - (2)
- The name of the data set from which the
COPY
member was copied. - (3)
- Abbreviation for concatenation level. Indicates how many levels
deep a given data set is from the first data set in the concatenation
for a given ddname.
For example, four data sets in the example above are concatenated to ddname SYSLIB:
DDNAME DSNAME (concatenation level) SYSLIB DD DSN=USERID.COBOL.COPY, 0 DD DSN=USERID.COBOL.LIB2PDSE, 1 DD DSN=USERID.COBOL.LIB3, 2 DD DSN=USERID.COBOL.LIB4X 3
Thus for example member NSMAP shown in the listing above was found in data set USERID.COBOL.LIB3, which is two levels down from the first data set in the SYSLIB concatenation.
- (4)
- Creation date is shown if the PDSE was edited with
STATS ON
in ISPF.
Tip: Under z/OS, if there is more than one
data set in your SYSLIB concatenation, the
COPY/BASIS
cross-reference
might in some cases be incomplete or missing. For details, see the
related reference about the XREF
compiler option.If you compile in the z/OS UNIX shell, the cross-reference looks like the excerpt shown below.
COPY/BASIS cross-reference of text-names, library names, and file names
(5) (5) (6)
Text-name Library-name File name
'/copydir/copyM.cbl' SYSLIB /u/JSMITH/cobol//copydir/copyM.cbl
'/copyA.cpy' SYSLIB /u/JSMITH/cobol//copyA.cpy
'cobol/copyA.cpy' ALTDD2 /u/JSMITH/cobol/copyA.cpy
'copy/stuff.cpy' ALTDD2 /u/JSMITH/copy/stuff.cpy
'copydir/copyM.cbl' SYSLIB /u/JSMITH/cobol/copydir/copyM.cbl
'copydir/copyM.cbl' SYSLIB (default) /u/JSMITH/cobol/copydir/copyM.cbl
'stuff.cpy' ALTDD /u/JSMITH/copy/stuff.cpy
"copyA.cpy" (7) SYSLIB (default) /u/JSMITH/cobol/copyA.cpy
"reallyXXVeryLongLon> SYSLIB (default) (8)<JSMITH/cobol/reallyXXVeryLongLongName.cpy
OTHERDD ALTDD2 /u/JSMITH//copy/other.cob
. . .
Note: Some names were truncated. > = truncated on right < = truncated on left
- (5)
- From the
COPY
statement in the source; for example theCOPY
statement corresponding to the third item in the cross-reference above would be:COPY 'cobol/copyA.cpy' Of ALTDD2
- (6)
- The fully qualified path of the file from which the
COPY
member was copied - (7)
- Truncation of a long text-name or library-name on the right is marked by a greater-than sign (>).
- (8)
- Truncation of a long file name on the left is marked by a less-than sign (<).