The cross-reference listing is requested with the CROSS-REFERENCE option of the MODIFY-LISTING-PROPERTIES statement.
It consists of the following parts:
The FILETABLE section contains the names of all files or libraries/elements that were used by the compiler as a source (source program or header element). A number is assigned to each of these names. These numbers are referenced in the other sections of the cross-reference listing.
The PREPROCESSING-INFO section contains a list of the names processed by the preprocessor in
#include
and#define
directives (macros, header element names, etc.).The TYPES section contains a list of the user-defined types (typedefs, classes, structure, union, and enumeration types).
The VARIABLES section contains a list of variables.
The FUNCTIONS section contains a list of functions.
The LABELS section contains a list of labels.
The TEMPLATES section contains a list of templates (in language modes C++ V3, C++ 2017 and C++ 2020 only).
The names in the individual lists are sorted in alphabetical order.
The PREPROCESSING-INFO, TYPES and TEMPLATES sections are not included in the cross-reference listing by default and must be explicitly specified with PREPROCESSING-INFO=*YES, TYPES=*YES or TEMPLATES=*YES, respectively.
FILETABLE section of the cross-reference listing
******* XREF - LISTING ******** BS2000 C/C++ COMPILER 04.0B02 DATE:2023-04-02 PAGE: 1 FILETABLE SOURCENAME:*BS2000(MAINPROG) TIME=17:37:52 ___________________________________________________________________________________________ SOURCE FILE 0 = *BS2000(:2OSC:$TST30B.MAINPROG) INCLUDE FILE 1 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,STDIO.H(V04.3A10),S) INCLUDE FILE 2 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,IOBUF.H(V04.3A10),S) INCLUDE FILE 3 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,POSFILE.H(V04.3A10),S) INCLUDE FILE 4 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,STDIO.BS21.H(V04.3A10),S) INCLUDE FILE 5 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,STDIO.COMMON.H(V04.3A10),S) INCLUDE FILE 6 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,STDIO.BS22.H(V04.3A10),S) INCLUDE FILE 7 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,CGLOBALS.H(V04.3A10),S) INCLUDE FILE 8 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,IOBUF.H(V04.3A10),S) INCLUDE FILE 9 = *LIBRARY-ELEMENT(:2OSL:$TSOS.SYSLIB.CRTE,ERRNO.H(V04.3A10),S) INCLUDE FILE 10 = *LIBRARY-ELEMENT(:2OSC:$TST30B.PLAM.INCL,INCL1.H(*UPPER-LIMIT),S) INCLUDE FILE 11 = *LIBRARY-ELEMENT(:2OSC:$TST30B.PLAM.INCL.INCL2.H(*UPPER-LIMIT),S) ___________________________________________________________________________________________
File number in global cross-reference listings
In a cross-reference listing that was created with the global listing generator from multiple CIF files (see section “Controlling the global listing generator”), the file number is indicated in the form n(m), where n is the sequential number of the source and header files (analogous to the local cross-reference listing; see above) used for each compilation unit (= CIF file), and m is the number of the respective compilation unit. The numbering of compilation units begins with 0.
PREPROCESSING-INFO section in the cross-reference listing
******* XREF - LISTING ******** BS2000 C/C++ COMPILER 04.0B02 DATE:2023-04-02 PAGE: 2 PREPRO SOURCENAME:*BS2000(MAINPROG) TIME=17:37:52 ___________________________________________________________________________________________ 56/12:5 *LIBRARY-ELEMENT(:2OSC:$TST30B.PLAM.INCL,INCL1.H(*UPPER-LIMIT),S) / include file 2%0 *LIBRARY-ELEMENT(:2OSC:$TST30B.PLAM.INCL,INCL2.H(*UPPER-LIMIT),S) / include file 3%0 ___________________________________________________________________________________________ '.'applied ':'def ':^'undef '%'included
TYPES section in the cross-reference listing
******* XREF - LISTING ******** BS2000 C/C++ COMPILER 04.0B02 DATE:2023-04-02 PAGE: 3 TYPES SOURCENAME:*BS2000(MAINPROG) TIME=17:37:52 ___________________________________________________________________________________________ a0000270 / struct of size 16 (0x10) std / namespace A / class of size 4 (0x4) ----------------- (1) 1/7:10 1/18.11 13/3.0 14/3.0 ----------------- (2) public baseclass of class 'B' i / member, signed int, private ----------------- (3) A / inline constructor( signed int ), public foo / member, inline function( void ) ret void, public B / class of size 8 (0x8) 1/7:11 A / baseclass, public i / member, signed int, private B / inline constructor( signed int ), public foo / member, inline function( void ) ret void, public ___________________________________________________________________________________________ '.'used ':'def '&'decl
Explanation
(1) | Name and description of the user-defined type, possibly with a size specification (decimal and hexadecimal). |
(2) | From left to right: For example, 14/3.0 means that a variable of type class A is defined in line 14, column 3 of the source program mainprog (0), and that the type is used (.). |
(3) | In the case of structured types, the respective components of these types are also described (indented). |
(3) | Bei strukturierten Typen werden auch die Komponenten dieser Typen (jeweils eingerückt) beschrieben. Die Datenelemente von Strukturen, Klassen und Unions werden ausschließlich im TYPES-Teil |
VARIABLES section in the cross-reference listing
******* XREF - LISTING ******** BS2000 C/C++ COMPILER 04.0B02 DATE:2023-04-02 PAGE: 4 VARIABLES SOURCENAME:*BS2000(MAINPROG) TIME=17:37:52 ___________________________________________________________________________________________ a / class 'A' ------------------ (1) 7/3=10 7/3:10 13/14&0 20/3&0 ------------------ (2) aptr / automatic, pointer to class 'A', local in main( void ) ret signed int, init value = &a 13/6=0 13/6:0 21/3.0 b / class 'B' 7/3=11 7/3:11 14/14&0 22/3&0 bptr / automatic, pointer to class 'A', local in main( void ) ret signed int, init value = &b 14/6=0 14/6:0 23/3.0 i / member, signed int, member of class 'A' 3/10:10 5/21=10 i / member, signed int, member of class 'B' 3/10:11 5/21=11 ii / automatic, signed int, local in main( void ) ret signed int, init value = 1 11/7=0 11/7:0 16/18.0 ii / extern, signed int 5/12:%0 jj / extern, signed int 4/16:%0 jj / automatic, signed int, local in main( void ) ret signed int, init value = 2 12/7=0 12/7:0 17/18.0 string / automatic, pointer to char, local in main( void ) ret signed int, init value = "AbCdEfG" 9/9=0 9/9:0 18/18.0 x / param of constructor A::A, signed int 5/12:10 5/23.10 x / param of constructor B::B, signed int 5/12:11 5/23.11 xx / automatic, float, local in main( void ) ret signed int, init value = 1 10/9=0 10/9:0 19/18.0 ___________________________________________________________________________________________ '='write '.'read '*='indir-write '*.'indir-read '&'read-addr ':'def '%'decl ':%'extdecl '%%'use
Explanation
(1) | Name, storage class and data type of the variables. |
(2) | From left to right:source program line and column in which the variable appears, abbreviation symbol for usage of the variable, and number of the source file or (header) element from the FILETABLE For example, 7/3:10 means that the variable a is defined (:) in line 7, column 3 of the header element |
FUNCTIONS section in the cross-reference listing
******* XREF - LISTING ******** BS2000 C/C++ COMPILER 04.0B02 DATE:2023-04-02 PAGE: 5 FUNCTIONS SOURCENAME:*BS2000(MAINPROG) TIME=17:37:52 ___________________________________________________________________________________________ foo / public member of class 'B', inline function( void ) ret void -- (1) 6/11:11 22/5.0 -- (2) foo / public member of class 'A', inline function( void ) ret void 6/11:10 20/5.0 21/9.0 23/9.0 main / function( void ) ret signed int 7/5:0 A / public member of class 'A', inline constructor( signed int ) 5/6:10 7/3.10 5/26.11 B / public member of class 'B', inline constructor( signed int ) 5/6:11 7/3.11 ___________________________________________________________________________________________ '.'call ':'def '&'decl '%'extdecl ':^'forward '&.'read-addr
Explanation
(1) | Name of the function, its scope, signature (type of parameters and return type), and storage class. |
(2) | From left to right: For example, 6/11:11 means that the function |