Dämon "trace"

Zweck

Zeichnet ausgewählte Systemereignisse auf.

Syntax

Trace -a  -g ] ] [  -f  -l ] [ -c] [ -C [ CPU-Liste | Alle ]] [  -d ] [ -e Zeichenfolgebefehl ] -h ] [ -j EventList ] [ -k  EventgroupList ] [ -J EventgroupList ] [ -K EventgroupList ] [  -m Nachricht ]  [ -M ] [ -N ] [  -n ] [  -o Name ] [  -o- ] [  -p ] [ -r Regliste ] [  -s ] [ -A ProcessIDList ] [ -t. ThreadIDList ] [ -x Programmspezifikation | -X Programmspezifikation ] [ -I ] [ -P trace-Weitergabe ][  -L Größe ] [  -T Größe ] [ -W ] [ -@ WparList ]

Beschreibung

Der Dämon trace konfiguriert eine Tracesitzung und startet die Erfassung von Systemereignissen. Die von der Tracefunktion erfassten Daten werden im Traceprotokoll aufgezeichnet. Mit dem Befehl trcrpt kann ein aus dem Traceprotokoll ein Bericht generiert werden.

Wenn er mit den Flags -a, -x oder -X aufgerufen wird, wird der Tracedämon asynchron ausgeführt (z. B. als Hintergrundtask). Andernfalls wird er interaktiv ausgeführt und fordert Sie zur Eingabe von Unterbefehlenauf.

Verwenden Sie das Flag -W , um die konfigurierte WPAR-ID (CID) in den Trace-Hooks anzugeben.

Um einen Trace für bestimmte WPARzu erstellen, verwenden Sie das Flag -@ mit einer Liste von WPAR -Namen, für die Sie einen Trace erstellen möchten.

Sie können zum Ausführen des Dämons trace auch SMIT (System Management Interface Tool) verwenden. Geben Sie Folgendes ein, um SMIT zu verwenden:

smit trace

Im Folgenden sind die Methoden für die Erfassung von Tracedaten beschrieben:

Element Beschreibung
Alternative (Standardwert) Alle Traceereignisse werden in der Traceprotokolldatei erfasst.
Kreisförmig ( -l) Die Traceereignisse werden in speicherinterne Puffer geschrieben und erst dann in der Traceprotokolldatei erfasst, wenn die Erfassung der Tracedaten gestoppt wird.
Einfach ( -f ) Die Erfassung von Traceereignissen wird gestoppt, wenn der speicherinterne Tracepuffer voll ist, und dann wird der Inhalt des Puffers in der Traceprotokolldatei erfasst.
Pufferzuordnung Tracepuffer werden aus dem Kernelheapspeicher oder über separate Segmente zugeordnet. Standardmäßig werden Puffer aus dem Kernelheapspeicher zugeordnet, sofern die angeforderte Puffergröße nicht zu groß ist. Wenn die angeforderte Größe zu groß ist, werden die Puffer in separaten Segmenten zugeordnet. Das Zuweisen von Puffern aus separaten Segmenten wirkt sich auf die Traceleistung aus. Puffer in separaten Segmenten belegen jedoch keinen Paging-Bereich, sondern nur fixierten Speicher.

Sie können die Traceerstellung auch für ausgewählte Prozesse oder Threads ausführen. Es ist auch möglich, einen Trace für ein einzelnes Programm zu erstellen. Sie können angeben, ob der Trace auf neu erstellte Prozesse oder Threads ausgeweitet werden soll. Wenn Kanal 0 aktiv ist, können Sie optional Unterbrechungsereignisse in solche Traces einschließen.

Hinweis:
  1. Wenn die Traceerstellung nicht vor dem Prozess, für den der Trace erstellt werden soll, gestartet wird, werden keine Prozesstartereignisse erfasst. Wenn der Trace vor dem Prozess, für den der Trace erstellt werden soll, gestartet wird, werden einige Ereignisse von anderen Prozessen als dem, für den der Trace erstellt wird, ebenfalls erfasst.
  2. Wenn Trace Speicher aus dem Kernel-Heap verwendet, bleibt dieser Speicher bis zum nächsten Neustart des Systems Teil des Kernelspeichers. Gehen Sie deshalb bei der Verwendung großer Puffer vorsichtig vor.

Flags

Element Beschreibung
-@ WparList Verfolgt die Workloadpartitionen , die Sie im Parameter WparList angeben. Mehrere WPAR -Namen können durch Kommas getrennt oder in Anführungszeichen eingeschlossen und durch Leerzeichen getrennt werden. Geben Sie "Global" an, um das aktuelle globale System in die Traceerstellung einzuschließen. Sie können das Flag -@ nur im globalen System in einer Workloadpartition -Umgebung angeben.
-A Führt den Dämon trace asynchron (d. h. als Hintergrundtask) aus. Nachdem trace auf diese Weise gestartet wurde, können Sie die Befehle trcon, trcoff und trcstop verwenden, um das Tracing zu starten, das Trading zu stoppen bzw. die Tracesitzung zu beenden. Diese Befehle sind als Links zu trace implementiert.
-A ProcessIDList Bewirkt, dass der Trace nur für die mit Prozess-ID-Liste angegebenen Prozesse und optional deren untergeordnete Prozesse erstellt wird. Eine Prozess-ID ist eine Dezimalzahl. Mehrere Prozess-IDs können entweder durch Kommas getrennt oder in Anführungszeichen eingeschlossen und durch Leerzeichen getrennt sein. Das Flag -A ist nur für Tracekanal 0 gültig. Die Flags -A und -g sind nicht kompatibel.

Es wird ein Trace für alle Threads erstellt, die für die angegebenen Prozesse beim Start des Tracings vorhanden sind. Wenn die Prozesse, für die der Trace erstellt wird, nach dem Start des Trace weitere Threads oder Prozesse erstellen, wird für diese standardmäßig kein Trace erstellt, sofern das Flag -P nicht angegeben ist.

-c Speichert die Traceprotokolldatei und fügt dem Namen .old hinzu.
-C [ CPU-Liste | all ] Erstellt den Trace mithilfe eines Satzes von Puffern pro Prozessor in der CPU-Liste. Die Prozessoren können durch Kommas getrennt oder in doppelte Anführungszeichen eingeschlossen und durch Kommas oder Leerzeichen getrennt werden. Wenn Sie einen Trace für alle Prozessoren erstellen möchten, geben Sie all an. Da dieses Flag einen Puffersatz pro Prozessor verwendet und eine Datei pro Prozessor erzeugt, kann es große Speichermengen und Dateibereiche belegen. Deshalb sollte es mit Vorsicht verwendet werden. Die erzeugten Dateien haben den Namen TRC-Datei, trcfile-0, trcfile-1 usw. Dabei sind 0, 1 usw. die Prozessornummern. Wenn -T oder -L angegeben ist, gelten die Größen für jeden Puffersatz und jede Datei. Auf einem Einzelprozessorsystem können Sie-C all, aber-Cwird eine Liste mit Prozessornummern ignoriert.
Achtung! Das Flag -C kann nur vom Benutzer root verwendet werden.
-d Inaktiviert den automatischen Start der Erfassung von Tracedaten. Verzögert den Start der Erfassung der Tracedaten. Normalerweise wird die Erfassung der Tracedaten automatisch gestartet, wenn Sie den Dämon trace ausführen. Verwenden Sie den Befehl trcon, um die Erfassung der Tracedaten zu starten.
-e Zeichenfolge-Befehl Konfiguriert den Komponententrace, indem ctctrl mit string-cmd als Argument ausgeführt wird, bevor der Trace gestartet wird. Sie führt also ctctrl string-cmdaus. Die Übergabe mehrerer -e -Optionen ist zulässig und entspricht der aufeinanderfolgenden Ausführung des Befehls ctctrl mit jedem string-cmd -Argument. Diese Option kann verwendet werden, um den Systemtracemodus (durch Aktivierung des Systemtracemodus, Änderung der Tracestufe usw.) für einige Komponenten vor dem Starten der Traceerstellung für das System zu konfigurieren.
-F Führt trace in einem einzelnen Modus aus. Bewirkt, dass die Erfassung der Tracedaten gestoppt wird, sobald der speicherinterne Puffer voll ist. Die Tracedaten werden dann in das Traceprotokoll geschrieben. Verwenden Sie den Befehl trcon, um die Erfassung der Tracedaten erneut zu starten und einen weiteren Puffer von Daten zu erfassen. Wenn Sie den Unterbefehltrcoff ausführen, bevor der Puffer voll ist, wird die Erfassung der Tracedaten gestoppt und der aktuelle Inhalt des Puffers in das Traceprotokoll geschrieben.
-G Startet eine Tracesitzung in einem generischen Tracekanal (Kanäle 1 bis 7). Dieses Flag funktioniert nur, wenn trace asynchron ausgeführt wird ( -a). Der Rückgabecode des Befehls ist die Kanalnummer. Die Kanalnummer muss anschließend in den Aufrufen der generischen Subroutine "trace" verwendet werden. Verwenden Sie den Befehl trcstop -<Kanalnummer>, um die generische Tracesitzung zu stoppen.
-H Lässt den Headerdatensatz im Traceprotokoll weg. Normalerweise schreibt der Dämon trace einen Headerdatensatz mit dem Datum und der Uhrzeit (aus dem Befehl date) am Anfang des Traceprotokolls, dem Systemnamen, der Version und des Release, der Knoten-ID und der Maschinen-ID (aus dem Befehl uname -a) und einer benutzerdefinierten Nachricht. Am Anfang des Traceprotokolls werden die Informationen aus dem Headerdatensatz in die Ausgabe des Befehls trcrpt eingeschlossen.
-I Trace-Interrupt-Ereignisse. Wenn das Flag -I zusammen mit dem Flag -A oder -t angegeben wird, werden Interruptereignisse zusammen mit den Ereignissen für die angegebenen Prozesse oder Threads protokolliert. Wenn "-I" angegeben ist, aber weder -A noch -t, werden nur Ereignisse auf Interruptebene im Trace erfasst. Das Flag -I ist nur für den Tracekanal 0 gültig. Die Flags -I und -g sind nicht kompatibel.
-j EventList Gibt die benutzerdefinierten Ereignisse für die Erfassung von Tracedaten an. Die im Parameter Ereignisliste angegebenen Listenelemente können entweder durch Kommas getrennt oder in Anführungszeichen eingeschlossen und dort durch Kommas oder Leerzeichen getrennt sein. In AIX® 6.1 und früheren Versionen gibt die Angabe einer zweistelligen Hook-ID in der Form hh die Werte hh00, hh10,...,hhF0 an. Die Angabe einer dreistelligen Hook-ID im Format hhh gibt Folgendes an: hhh0. Die Angabe einer vierstelligen Hook-ID im Format hhhh gibt Folgendes an: hhhh.

Wenn eines dieser Ereignisse fehlt, sind die vom Befehl trcrpt berichteten Informationen unvollständig. Wenn Sie das Flag -j verwenden, sollten Sie daher alle diese Ereignisse in die Ereignisliste einfügen. Wenn der Trace mit SMIT oder mit dem Flag -J gestartet wird, sind diese reignisse in der Gruppe tidhk enthalten.

-J EventgroupList Gibt die einzuschließenden Ereignisgruppen an. Die im Parameter Ereignisgruppenliste angegebenen Listenelemente können durch Kommas getrennt oder in Anführungszeichen eingeschlossen und dort durch Kommas oder Leerzeichen getrennt werden. Die Flags -J und -K funktionieren wie -j und -k mit der Ausnahme, dass Ereignisgruppen anstelle einzelner Hook-IDs verwendet werden. Sie können jedes Flag, -j, -J, -k und -K, in einem Befehl angeben.
-k EventgroupList Gibt die benutzerdefinierten Ereignisse für den Auschluss von Tracedaten an. Die im Parameter Ereignisgruppenliste angegebenen Listenelemente können durch Kommas getrennt oder in Anführungszeichen eingeschlossen und dort durch Kommas oder Leerzeichen getrennt werden. In AIX 6.1 und früheren Releases gibt die Angabe einer zweistelligen Hook-ID im Formular hh hh00, hh10,...,hhF0an. Die Angabe einer dreistelligen Hook-ID im Format hhh gibt Folgendes an: hhh0. Die Angabe einer vierstelligen Hook-ID im Format hhhh gibt Folgendes an: hhhh.
Tipp: Mit den folgenden Ereignissen werden die pid, die cpuidund der Pfadname exec im Bericht trcrpt bestimmt:
106 DISPATCH
10C DISPATCH IDLE PROCESS
134 EXEC SYSTEM CALL
139 FORK SYSTEM CALL
465 KTHREAD CREATE

Wenn eines dieser Ereignisse fehlt, sind die vom Befehl trcrpt berichteten Informationen unvollständig. Wenn Sie das Flag -k verwenden, geben Sie diese Ereignisse nicht im Parameter Ereignisgruppenliste an. Wenn der Trace mit SMIT oder mit dem Flag -J gestartet wird, sind diese reignisse in der Gruppe tidhk enthalten.

-K EventgroupList Gibt die Ereignisgruppen an, die ausgeschlossen werden sollen. Die im Parameter Ereignisgruppenliste angegebenen Listenelemente können durch Kommas getrennt oder in Anführungszeichen eingeschlossen und dort durch Kommas oder Leerzeichen getrennt werden. Die Flags -J und -K funktionieren wie -j und -k mit der Ausnahme, dass Ereignisgruppen anstelle einzelner Hook-IDs verwendet werden. Sie können jedes Flag, -j, -J, -k und -K, in einem Befehl angeben.
-l Führt trace im zirkulären Modus aus. Der Dämon trace schreibt die Tracedaten in das Traceprotokoll, wenn die Erfassung der Tracedaten gestoppt wird. Es wird nur der letzte Puffer von Tracedaten erfasst. Wenn Sie die Erfassung der Tracedaten mit dem Befehl trcoff stoppen, können Sie sie mit dem Befehl trcon erneut starten.
-L Größe Überschreibt die Standardgröße der Traceprotokolldatei, 1 MB, durch den angegebenen Wert. Bei Angabe der Dateigröße 0 wird die Größe der Traceprotokolldatei auf die Standardgröße gesetzt.

Anmerkung: Im zirkulären und alternativen Modus muss die Größe der Traceprotokolldatei mindestens doppelt so hoch sein wie die Größe des Tracepuffers. Im Einzelmodus muss die Größe der Traceprotokolldatei mindestens der Größe des Puffers entsprechen. Informationen zum Steuern der Größe des Tracepuffers finden Sie in der Beschreibung des Flags -T.

-m Nachricht Gibt den Text an, der in das Nachrichtenfeld des Headerdatensatzes des Traceprotokolls eingefügt werden soll.
-M Gibt die Adresszuordnung aktiver Prozesse im Trace aus. Das Flag -M muss angegeben werden, wenn die Tracedatei vom Befehl tprof verarbeitet werden soll.
-N Fügt dem Traceprotokollheader Informationen hinzu: Sperrinformationen, Hardwareinformationen und für jeden Ladeeintrag den Symbolnamen, die Adresse und den Typ.
-N Gibt die Adresszuordnung der angegebenen Prozesse im Trace aus. Die Option -N wird in Kombination mit der Option -M verwendet.
-o Name Überschreibt die Standardtraceprotokolldatei /var/adm/ras/trcfile und schreibt Tracedaten in eine benutzerdefinierte Datei.
-o- Überschreibt den Standardtraceprotokollnamen und schreibt Tracedaten in die Standardausgabe. Wenn dieses Flag verwendet wird, wird das Flag -c ignoriert. Es wird ein Fehler generiert, wenn -o und -C angegeben sind.
-p Fügt die cpuid des aktuellen Prozessors mit jedem Hook ein. Dieses Flag ist nur für 64-Bit-Kernel-Traces gültig.

Anmerkung: Der Befehl trcrpt kann die cpuid melden, unabhängig davon, ob diese Option angegeben ist.

-P Weitergabe Die Weitergabe wird mit den Buchstaben p für Weitergabe bei Prozesserstellung, t für Weitergabe bei Threaderstellung und n für keine Weitergabe angegeben. Die Weitergabe bei Prozesserstellung impliziert die Weitergabe bei Threaderstellung. Wenn Sie beispielsweise -A für das Tracing eines Prozesses angeben, wird ein Trace für alle Threads dieses Prozesses erstellt, die zum Zeitpunkt des Tracestarts vorhanden sind. Die Flags -Pt bewirken, dass alle nachfolgend von diesem Prozess erstellten Threads ebenfalls in den Trace eingeschlossen werden. Wenn -Pp angegeben ist, werden alle Prozesse und Threads, die nachfolgend von diesem Prozess erstellt werden, in den Trace eingeschlossen. Wenn -t all angegeben wird, um einen Trace für alle Threads zu erstellen, wird -P ignoriert. Das Flag -P ist nur für den Tracekanal 0 gültig. Die Flags -P und -g sind nicht kompatibel.
-r regliste Optional und nur gültig für einen trace , der auf einem 64-Bit-Kernel ausgeführt wird. Die Elemente in der Registerliste werden durch Kommas getrennt oder in Anführungszeichen eingeschlossen und dort durch Leerzeichen getrennt. Es können bis zu 8 Register angegeben werden. Die gültigen Werte für Registerliste sind im Folgenden beschrieben:
PURR
PURR-Register für diesen Prozessor
SPURR
SPURR-Register für diesen Prozessor
MCR0, MCR1, MCRA - the MCR
Register 0, 1 und A
PMC1, PMC2, ... PMC8 - PMC
Register 1 bis 8

Wenn das Flag -r angegeben ist, gibt der Befehl trace die angegebenen Registerwerte im Header aus.

Einschränkung: Nicht alle Register sind für alle Prozessoren gültig.
-s Stoppt das Tracing, wenn das Traceprotokoll voll ist. Der Dämon trace überschreibt das Traceprotokoll gewöhnlich von vorne, wenn es voll ist, und fährt mit der Erfassung der Tracedaten fort. Während der asynchronen Ausführung bewirkt dieses Flag, dass der Dämon trace die Erfassung der Tracedaten stoppt. (Während der interaktiven Ausführung muss der Trace mit dem Befehl quit gestoppt werden.)
-t ThreadIDList Erstellt den Trace nur für die Threads, die im Parameter Thread-ID-Liste angegeben sind. Eine Thread-ID ist eine Dezimalzahl. Mehrere Thread-IDs können entweder durch Kommas getrennt oder in Anführungszeichen eingeschlossen und durch Leerzeichen getrennt sein.

Für die Threadliste kann auch all oder * angegeben werden. Diese Werte zeigen an, dass der Trace für alle Threads erstellt werden soll. Dies ist hilfreich, um alle threadrelevanten Ereignisse in den Trace einzuschließen, ohne das Tracing interruptrelevanter Ereignisse zu beeinträchtigen. Wenn das Flag -t all und das Flag -I jedeoch beide angegeben sind, entspricht dies der Angabe keines dieser Flags. Es werden alle Ereignisse in den Trace eingeschlossen. Anders ausgedrückt, trace und trace-It all sind identisch.

Das Flag -t ist nur für den Tracekanal 0 gültig. Die Flags -t und -g sind inkompatibel.

-T Größe

Überschreibt die Standardtracepuffergröße von 128 KB durch den angegebenen Wert. Sie müssen Root sein, um mehr als 1 MB Pufferbereich anzufordern. Die maximal mögliche Größe sind 268435184 Byte, sofern das -f nicht wird verwendet. Wenn dieses Flag verwendet wird, ist die maximale Größe 536870368 Byte. Die kleinstmögliche Größe sind 8192 Byte, sofern das Flag -f nicht verwendet wird. Wenn dieses Flag verwendet wird, ist die kleinste Größe 16392 Byte. Größen zwischen 8192 und 16392 werden akzeptiert, wenn das Flag -f verwendet wird. Die tatsächlich verwendete Größe sind jedoch 16392 Byte.

Anmerkung: Im zirkulären Modus und im alternativen Modus darf die Tracepuffergröße maximal halb so groß wie die Traceprotokolldatei sein. Im Einzelmodus muss die Größe der Traceprotokolldatei mindestens der Größe des Puffers entsprechen. Informationen zum Steuern der Größe der Traceprotokolldatei finden Sie in der Beschreibung des Flags -L. Beachten Sie auch, dass Tracepuffer fixierten Speicher verwenden, d. h., sie können nicht ausgelagert werden. Je größer die Tracepuffer sind, desto weniger physischer Speicher steht den Anwendungen zur Verfügung.

Das System versucht, den Pufferspeicher aus dem Kernelfreispeicher zuzuordnen. Wenn diese Anforderung nicht erfüllt werden kann, versucht das System, die Puffer als separate Segmente zuzuordnen.

Das Flag -f verwendet tatsächlich zwei Puffer, die sich wie ein einziger Puffer verhalten (abgesehen davon, dass ein Trace-Hook für Pufferumlauf aufgezeichnet wird, wenn der Puffer voll ist).

-W Verwenden Sie das Flag -W , um die konfigurierte ID (CID) der Workloadpartitionfür den aktuellen Prozess mit jedem Hook einzuschließen. Dieses Flag ist nur im globalen System in einer Workloadpartition -Umgebung gültig.
Tipp: Der Befehl trcrpt kann die WorkloadpartitionCID melden, unabhängig davon, ob diese Option angegeben ist.
-x Programmspezifikation Erstellt einen Trace für das angegebene Programm. In der Programmspezifikation werden ein Programm und die Parameter wie bei der Ausführung des Programms über die Shell angegeben. Der einzige Unterschied besteht darin, dass die Programmspezifikation in Anführungszeichen gesetzt werden muss, wenn mehr als nur der Programmname angegeben wird. Der Trace wird automatisch gestoppt, wenn das Programm beendet wird, und gibt den Rückgabecode des Programms zurück. Standardmäßig werden auch alle vom Programm erstellten Prozesse und Threads in den Trace eingeschlossen, wie es bei der Angabe von -Pp der Fall ist. Wenn Sie dieses Verhalten ändern möchten, können Sie mit -Pn angeben, dass keine Traceweitergabe vorgenommen werden soll, oder mit -Pt angeben, dass der Traceerstellung nur auf die Threads erweitert werden soll, die vom ursprünglichen Prozess des Programms erstellt werden.
Tipp: Das Flag -x impliziert asynchrones Tracing, als wäre auch das Flag -a angegeben worden.
-x Programmspezifikation Das Flag -X funktioniert wie das Flag "-x" mit der Ausnahme, dass der Trace bei der Beendigung des Programms nicht automatisch gestoppt wird. Dies ist hilfreich für das Tracing von Programmen, die Prozesse aufspalten und dann beendet werden, und wenn Sie diese neuen Prozesse ebenfalls in den Trace einschließen möchten.

Unterbefehle

Bei der interaktiven Ausführung erkennt der Befehl "trace" die folgenden Unterbefehle:

Element Beschreibung
trcon Startet die Erfassung von Tracedaten.
trcoff Stoppt die Erfassung von Tracedaten.
q oder quit [-serial | -dd ] Stoppt die Erfassung von Tracedaten und beendet dann den Befehl trace. Wenn die Option -s angegeben ist, werden alle anstehenden E/A-Operationen serialisiert. Wenn die Option -d angegeben ist, werden alle anstehenden E/A-Operationen verworfen.
! Befehl Führt den mit dem Parameter Befehl angegebenen Shellbefehl aus.
? Zeigt die Zusammenfassung der trace-Unterbefehle an.

Signale

Das INTERRUPT-Signal dient als Schalter zum Starten und Stoppen der Erfassung von Tracedaten. Unterbrechungen werden für den Prozess, für den der Trace erstellt wird, auf SIG_IGN gesetzt.

Sicherheit

Achtung RBAC-Benutzer und vertrauenswürdige AIX: Dieser Befehl kann privilegierte Operationen durchführen. Privilegierte Operationen können nur von privilegierten Benutzern ausgeführt werden. Weitere Informationen über Berechtigungen und Privilegien finden Sie unter Privilegierte Befehlsdatenbank in Sicherheit. Eine Liste der Berechtigungen und Autorisierungen, die diesem Befehl zugeordnet sind, finden Sie in den Beschreibungen des Befehls lssecattr und des Unterbefehls getcmdattr.
Wenn Sie den Befehl trace in Kanal 0 ausführen möchten, müssen Sie die folgenden zusätzlichen Berechtigungen haben, wenn die trace-Einschränkung für Kanal 0 im Befehl trcctl aktiviert ist:
Element Beschreibung
aix.ras.trace.tracech0 Diese Berechtigung ist für die Ausführung des Befehls trace in Kanal 0 erforderlich.
Hinweis: Standardmäßig sind Root-und Systemgruppenbenutzer privilegierte Benutzer.
Wenn Sie alle Funktionen aller Befehle, einschließlich des Befehls trace, in Kanal 0 ausführen möchten, müssen Sie die folgenden zusätzlichen Berechtigungen haben:
Element Beschreibung
aix.ras.trace.trace Diese Berechtigung ist für alle Traceoperationen erforderlich.

Beispiele

  1. Geben Sie Folgendes ein, um den Trace interaktiv zu verwenden:trace, (die>angezeigt) und geben Sie anschließend die gewünschten Unterbefehle an. Geben Sie beispielsweise Folgendes ein, um während der Ausführung des Befehls anycmd Systemereignisse verfolgen möchten:
    trace
    > !anycmd
    > q
  2. Um Verzögerungen zu vermeiden, wenn der Befehl beendet wird, starten Sie den Trace asynchron ( -a), indem Sie in nur einer Befehlszeile Folgendes eingeben:
    trace -a; anycmd; trcstop
  3. Geben Sie Folgendes ein, um einen Trace von 10 Sekunden für das System selbst zu erstellen:
    trace -a; sleep 10; trcstop
  4. Geben Sie Folgendes ein, um um die Tracedaten in einer bestimmten Traceprotokolldatei (anstelle von /var/adm/ras/trcfile) auszugeben:
    trace -a -o /tmp/my_trace_log; anycmd; trcstop
  5. Geben Sie Folgendes ein, um die Ausführung eines Befehls cp zu erfassen und bestimmte Ereignisse vom Erfassungsprozess auszuschließen:
    trace -a -k "20e,20f" -x "cp /bin/track /tmp/junk"

    Im vorherigen Beispiel unterdrückt die Option -k die Auflistung von Ereignissen in den Funktionen lockl und unlockl (Ereignisse 20e und 20f).

    Beachten Sie auch, dass das Flag -x verwendet wurde, sodass nur die dem cp-Befehlsprozess zugeordneten Hooks verfolgt und keine Interruptaktivitäten erfasst werden.

  6. Geben Sie Folgendes ein, um Hook 234 und die Hooks zu verfolgen, die Ihnen ermöglichen, die Prozessnamen anzuzeigen:
    trace -a -j 234 -J tidhk
    Dieser Befehl verfolgt die Hooks in der Ereignisgruppe "tidhk" und Hook 234.
  7. Geben Sie Folgendes an, damit der Befehl "trace" einen Satz von Puffern pro Prozessor verwendet:
    trace -aC all
    Die erzeugten Dateien sind /var/adm/ras/trcfile, /var/adm/ras/trcfile-0, /var/adm/ras/trcfile-1 usw. bis /var/adm/ras/trcfile-(n-1), wobei n für die Anzahl der Prozessoren im System steht.
    Tipp: trace -aCall -o mylogerzeugt die Dateien mylog, mylog-0, mylog-1, ...
  8. Geben Sie Folgendes ein, um Tracedaten für ein Programm zu erfassen, das einen Dämonprozess startet, und das Tracing des Dämons auch nach Beendigung des ursprünglichen Programms fortzusetzen:
    trace -X "mydaemon"
    Der Trace muss mit trcstop beendet werden.
  9. Geben Sie Folgendes ein, um den Dämon mydaemon zu verfolgen, das momentan ausgeführt wird:
    trace -A mydaemon-process-id -Pp
    In diesem Befehl ist mydaemon-process-id der Prozess für mydaemon, der vom Befehl ps zurückgegeben wird. Das Flag -Pp weist den Befehl "trace" an, auch alle Prozesse und Threads zu verfolgen, die von mydaemon während der Traceausführung erstellt werden.
  10. Geben Sie Folgendes ein, um PURR sowie PMC1 und PMC2 zu erfassen:
    trace -ar "PURR PMC1 PMC2"
  11. Geben Sie Folgendes ein, um einen Trace für die Hooks 1A00,1A10, ..., 1AF0, DCA0 und 1AB1 zu erstellen:
    trace -aj 1A,DCA,1AB1 

Dateien

Element Beschreibung
/usr/include/sys/trcmacros.h Definiert trchook- und utrchook-Makros.
/var/adm/ras/trcfile Enthält die Standardtraceprotokolldatei.