Die Querverweisliste wird mit der CROSS-REFERENCE-Option der MODIFY-LISTING-PROPERTIES-Anweisung angefordert.
Sie besteht aus folgenden Teilen:
Der FILETABLE-Teil enthält die Namen aller Dateien bzw. Bibliotheken/Elemente, die der Compiler als Quelle (Quellprogramm oder Include-Element) verwendet hat und ordnet diesen jeweils eine Nummer zu. Auf diese Nummern nehmen die anderen Teile der Querverweisliste Bezug.
Der PREPROCESSING-INFO-Teil enthält eine Liste der vom Präprozessor bearbeiteten Namen in
#include- und#define-Anweisungen (Makros, Include-Elementnamen etc.)Der TYPES-Teil enthält eine Liste der benutzerdefinierten Typen (typedefs, Klassen-, Struktur-, Union- und Aufzählungstypen)
Der VARIABLES-Teil enthält eine Liste der Variablen
Der FUNCTIONS-Teil enthält eine Liste der Funktionen
Der LABELS-Teil enthält eine Liste der Labels
Der TEMPLATES-Teil enthält eine Liste der Templates (nur in den Modi C++ V3, C++ 2017 und C++ 2020)
Die Namen sind in den Listen jeweils alphabetisch sortiert.
Der PREPROCESSING-INFO-, TYPES- und TEMPLATES-Teil sind in der Querverweisliste standardmäßig nicht enthalten und müssen mit PREPROCESSING-INFO=*YES, TYPES=*YES bzw. TEMPLATES=*YES explizit angefordert werden.
FILETABLE-Teil der Querverweisliste
******* 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)
___________________________________________________________________________________________
Dateinummer in globalen Querverweislisten
In einer Querverweisliste, die mit dem globalen Listengenerator aus mehreren CIF-Dateien erstellt wurde (siehe Abschnitt „Steuerung des globalen Listengenerators“) wird die Dateinummer in der Form n(m) angegeben. n ist die fortlaufende Nummer der pro Übersetzungseinheit (= CIF-Datei) verwendeten Quell- und Include-Dateien (analog zur lokalen Querverweisliste, s.o.), m ist die Nummer der jeweiligen Übersetzungseinheit. Die Nummerierung der Übersetzungseinheiten beginnt mit 0.
PREPROCESSING-INFO-Teil der Querverweisliste
******* 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-Teil der Querverweisliste
******* 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
Erklärung
(1) | Name und Beschreibung des benutzerdefinierten Typs, ggf. mit Angabe der Größe |
(2) | Jeweils von links nach rechts: 14/3.0 bedeutet z.B.: In Zeile 14, Spalte 3 des Quellprogramms mainprog (0) wird eine Variable vom |
(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-Teil der Querverweisliste
******* 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
Erklärung
(1) | Name, Speicherklasse und Datentyp der Variablen |
(2) | Jeweils von links nach rechts: 7/3:10 bedeutet z.B.: In Zeile 7, Spalte 3 des Include-Elements |
FUNCTIONS-Teil der Querverweisliste
******* 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
Erklärung
(1) | Name der Funktion, Geltungsbereich, Signatur (Typ der Parameter und Returntyp) und Speicherklasse; |
(2) | Jeweils von links nach rechts: 6/11:11 bedeutet z.B.: In Zeile 6, Spalte 11 des Include-Elements |