Das Programm xtitrace liest die vom XTI-Trace erzeugten Trace-Informationen aus einer oder mehreren Dateien. xtitrace verarbeitet diese Trace-Informationen gemäß den für xtitrace spezifizierten Optionen und gibt das Ergebnis auf die Standardausgabe aus.
Nach erfolgreicher Ausführung von xtitraxce ist der Status 0, andernfalls ungleich 0.
Programm xtitrace aufrufen
Das Programm xtitrace rufen Sie wie folgt auf:
xtitrace[ -option] file ... |
-option
Mit option legen Sie fest, welche Informationen der durch file spezifizierte(n) Trace-Datei(en) auszugeben sind. Pro xtitrace-Aufruf können Sie für option mehrere der nachfolgend beschriebenen Werte angeben.
Einen oder mehrere der folgende Werte können Sie für option angeben:
c
Ausgegeben werden die Trace-Informationen zu XTI-Aufrufen für folgende Aktionen:
- Installieren/Deinstallieren einer Kommunikationsanwendung
- Einrichten/Abbauen einer Verbindung
Betroffen sind die XTI-Funktionen t_accept(), t_bind(), t_close(), t_connect(), t_listen(), t_open(), t_rcvconnect(), t_rcvdis(), t_rcvrel(), t_snddis(), t_sndrel() und t_unbind().
d
Ausgegeben werden die Trace-Informationen zu XTI-Aufrufen für den Datenaustausch.
Betroffen sind die XTI-Funktionen t_rcv(), t_rcvudata(), t_rcvuderr(), t_snd() und t_sndudata().
m
Ausgegeben werden die Trace-Informationen zu XTI-Aufrufen, die bei den Optionen c und d nicht berücksichtigt sind.
Betroffen sind die XTI-Funktionen t_alloc(), t_error(), t_free(), t_getinfo(), t_getstate(), t_look(), t_optmgmt() und t_sync().
Wenn keiner der oben genannten Options-Werte angegeben ist, dann werden alle oben genannten Trace-Informationen ausgegeben, so als wäre -cdm
angegeben worden.
v
Ausgegeben werden die Trace-Informationen zu allen XTI-Aufrufen sowie die Werte der zugehörigen Parameter und Optionen. Falls Parameter vorkommen, die als Zeiger übergeben werden, werden die Werte der durch die Zeiger adressierten Objekte ebenfalls ausgegeben. Letzteres setzt allerdings voraus, dass die entsprechenden Daten bei der Trace-Erstellung aufgezeichnet wurden (siehe Abschnitt "Umgebungsvariable XTITRACE parametrisieren").
Wenn XTITRACE mit Option S
parametrisiert wurde, sollten Sie für option den Wert v
spezifizieren. Die Angabe -v
hat dieselbe Bedeutung wie die Angabe -cdmv
.
file ...
Mit file spezifizieren Sie den Namen einer Datei, die binäre Trace-Daten enthält. Sie können auch mehrere Dateinamen angeben.
Ausgabeformat des XTI-Trace
Das Programm xtitrace beginnt die Ausgabe immer mit einem Header. Dahinter schreibt xtitrace die Trace-Informationen zu den einzelnen XTI-Aufrufen. Je nach Parametrisierung der Umgebungsvariablen XTITRACE und des Programms xtitrace gibt xtitrace für jeden protokollierten XTI-Aufruf entweder eine einzelne Zeile oder mehrere Zeilen unterschiedlichen Formats aus.
Format des Headers
Der Header enthält folgende Informationen:
Versionsnummer der XTI-Bibliothek
Datum und Uhrzeit des Trace-Beginns
spezifizierte Werte der Ausgabeoption für xtitrace
Name(n) der Trace-Datei(en), deren Inhalt xtitrace ausgibt
Beispiel:
XTI TRACE (V5.0) Wed Jul 26 16:29:56 2023 OPTIONS 'cdm' TRACE FILE './XTIF00677'
Format der ersten Ausgabezeile für einen protokollierten XTI-Aufruf
Die Trace-Information für einen XTI-Aufruf beginnt immer mit einer Zeile, die wie folgt aufgebaut ist.
- Am Anfang der Zeile steht der Zeitstempel:
minutes:seconds.milliseconds (z.B. 24:16.324)
Die Genauigkeit in Millisekunden hängt von der verwendeten Hardware ab. - An den Zeitstempel schließt sich der aufgezeichnete XTI-Aufruf (z.B. t_bind()) an. Dahinter folgt eine in runde Klammern eingeschlossene Liste, in der die Parameter und zugehörigen Parameterwerte des betreffenden XTI-Aufrufs aufgeführt sind (in der von XTI geforderten Reihenfolge). Die Parameterwerte sind in dezimaler (%d), sedezimaler (0x%x) oder symbolischer Form (%s) dargestellt. Ein sedezimal dargestellter Parameterwert beginnt immer mit 0x.
Im Einzelnen gilt für die Darstellung von Parametern und zugehörigen Werten:- Werte von Zeigern sind sedezimal dargestellt.
- Bei Parametern vom Typ Integer (z.B. fd) kann der korrespondierende Wert in sedezimaler, dezimaler oder symbolischer Form dargestellt sein. Parameter und zugehöriger Wert sind durch ein Leerzeichen getrennt.
Bei XTI-Funktionen, deren Ausführung vom Zustand des Transportendpunkts abhängt, informiert das Trace-Protokoll, ob der Aufruf blockiert (Standardfall) oder nicht (Spezifikation: O_NDELAY bzw. O_NONBLOCK) .
Format weiterer Ausgabezeilen für einen protokollierten XTI-Aufruf
Die nachfolgend erläuterten Trace-Information gibt xtitrace nur aus, wenn die beiden folgenden Bedingungen erfüllt sind:
Für die Trace-Erstellung wurde die Variable XTITRACE mit Option S parametrisiert.
Das Programm xtitrace wurde mit Option v parametrisiert.
Für Parameter, die als Zeiger übergeben werden, gibt xtitrace dann Namen und Werte der von diesen Zeigern adressierten Datenobjekte aus. Die Werte dieser Datenobjekte (z.B. Strukturkomponenten) werden sedezimal ausgegeben.
Die Trace-Informationen zu Strukturkomponenten enthalten einige Sonderzeichen mit folgender Bedeutung:
>
Der betreffenden Komponente muss vor Aufruf der protokollierten XTI-Funktion von der aufrufenden Kommunikationsanwendung ein Wert zugewiesen werden.
<
In der betreffenden Komponente wird von der protokollierten XTI-Funktion ein Wert zurückgeliefert, falls die XTI-Funktion ordnungsgemäß ausgeführt wird.
-
Der Wert der betreffenden Komponente ist für die protokollierte XTI-Funktion ohne Bedeutung.
---
Wenn dies an Stelle eines Komponentenwerts ausgegeben wird, ist der betreffenden Komponente kein Wert zugeordnet.
Format der letzten Ausgabezeile für einen protokollierten XTI-Aufruf
In der letzten Zeile für einen protokollierten XTI-Aufruf wird immer der Returnwert der betreffenden XTI-Funktion ausgegeben. Im Fehlerfall werden t_errno, evtl. errno sowie Angaben zur Fehlerposition (errpos) ausgegeben.
Beispiele
Beispiel für eine kurze Protokollierung
$ xtitrace -c ./XTIF00677 XTI TRACE (V5.0) Wed Jul 26 16:29:56 2023 OPTIONS 'c' TRACE FILE './XTIF00677' 29:56.000 t_open(name /dev/tcp, oflag BLOCK [0x2], info 0x0) return: 4 29:56.000 t_bind(fd 4, req 0x0, ret 0x0) return: 0 29:56.000 t_connect(fd 4, sndcall 0x12ee598, rcvcall 0x0) BLOCK return: 0 $
Beispiel für eine ausführliche Protokollierung
$ xtitrace -cv ./XTIF00677 XTI TRACE (V5.0) Wed Jul 26 16:29:56 2023 OPTIONS 'cv' TRACE FILE './XTIF00677' 29:56.000 t_open(name /dev/tcp, oflag BLOCK [0x2], info 0x0) return: 4 29:56.000 t_bind(fd 4, req 0x0, ret 0x0) qlen (>) 0 return: 0 29:56.000 t_connect(fd 4, sndcall 0x12ee598, rcvcall 0x0) BLOCK sndcall: addr.maxlen(-) addr.len(>) addr.buf(>) --- 16 0x12ee5d8 0 0002270f 7f000001 00000000 00000000 | return: 0 $