Handbuch zur dynamischen Ablaufverfolgung in Solaris

Optionen

Der Befehl dtrace übernimmt die folgenden Optionen:

dtrace [-32 | -64] [-aACeFGHlqSvVwZ] [-b Puffergr] [-c Befehl] [-D Name [=Def]] [-I Pfad] [-L Pfad] [-o Ausgabe] [-p PID] [-s Skript] [-U Name] [-x Arg [=Wert]] [-Xa | c | s | t] [-P Provider [ [Prädikat]Aktion]] [-m [ [Provider:]Modul [ [Prädikat]Aktion]]] [-f [ [Provider:]Modul: ]Funktion [ [Prädikat]Aktion]] [-n [ [ [Provider:]Modul:]Funktion:]name [ [Prädikat]Aktion]] [-i Prüfpunkt-ID [ [Prädikat]Aktion]]

wobei Prädikat ein beliebiges in Schrägstrichen / / eingeschlossenes Prädikat und Aktion eine beliebige in geschweiften Klammern { } eingeschlossene D-Anweisungsliste im Einklang mit der beschriebenen D-Sprachsyntax sind. Wenn den Optionen -P, -m, -f, -n oder -i D-Programmcode als Argument übergeben wird, muss dieser Text ordnungsgemäß·in Anführungszeichen gesetzt werden, um eine Interpretation durch die Shell zu verhindern. Die Optionen lauten:

-32, -64

Der D-Compiler erzeugt Programme auf Grundlage des nativen Datenmodells des Betriebssystemkerns. Mit dem Befehl isainfo(1) -b können Sie das aktuelle Betriebssystemdatenmodell ermitteln. Bei Angabe der Option -32 bringt dtrace den D-Compiler dazu, ein D-Programm auf Grundlage des 32-Bit-Datenmodells zu kompilieren. Bei Angabe der Option -64 bringt dtrace den D-Compiler dazu, ein D-Programm auf Grundlage des 64-Bit-Datenmodells zu kompilieren. Diese Optionen werden in der Regel nicht benötigt, da dtrace standardmäßig das native Datenmodell auswählt. Das Datenmodell wirkt sich auf die Größe von Integer-Typen und andere Eigenschaften der Sprache aus. Die für eines der Datenmodelle kompilierten D-Programme können sowohl auf 32- als auch auf 64-Bit-Kernels ausgeführt werden. Die Optionen -32 und -64 bestimmen auch das Format der mit der Option -G erstellten ELF-Datei (ELF32 oder ELF64).

-a

Anonymen Ablaufverfolgungsstatus fordern und die verfolgten Daten anzeigen. In Kombination erzwingen die Optionen -a und -e die sofortige Beendigung von dtrace, sobald der anonyme Ablaufverfolgungsstatus verbraucht ist, ohne auf weitere Daten zu warten. Weitere Informationen zur anonymen Ablaufverfolgung finden Sie in Kapitel 36Anonyme Ablaufverfolgung.

-A

driver.conf(4)-Direktiven für die anonyme Ablaufverfolgung generieren. Wenn die Option - A angegeben ist, kompiliert dtrace alle mit der Option -s oder in der Befehlszeile angegebenen D-Programme, erstellt einen Satz dtrace(7D) -Konfigurationsdateidirektiven zum Aktivieren der angegebenen Prüfpunkte für die anonyme Ablaufverfolgung (siehe Kapitel 36Anonyme Ablaufverfolgung) und wird dann beendet. Standardmäßig versucht dtrace, die Direktiven in der Datei /kernel/drv/dtrace.conf zu speichern. Dieses Verhalten lässt sich durch Angabe einer alternativen Ausgabedatei mit der Option -o ändern.

-b

Größe des Haupt-Ablaufverfolgungspuffers festlegen. Die Größe des Ablaufverfolgungspuffers kann ein beliebiges der Größensuffixe k, m, g oder t (siehe Beschreibung in Kapitel 36Anonyme Ablaufverfolgung) enthalten. Kann der Pufferplatz nicht zugewiesen werden, versucht dtrace, die Puffergröße zu verringern oder wird beendet. Dies hängt von der Einstellung der Eigenschaft bufresize ab.

-c

Angegebenen Befehl ausführen und anschließend Vorgang beenden. Wenn die Option -c in der Befehlszeile mehrmals vorhanden ist, wird dtrace nach dem Ende aller Befehle ebenfalls beendet und meldet den Beendigungsstatus für jeden untergeordneten Prozess. Die Prozess-ID des ersten Befehls wird jedem in der Befehlszeile oder mit der Option -s angegebene D-Programm über die Makrovariable $target verfügbar gemacht. Weitere Informationen zu Makrovariablen finden Sie in Kapitel 15Scripting.

-C

Vor dem Kompilieren den C-Preprozessor cpp(1) auf den D-Programmen ausführen. Über die Optionen -D, -U, -I und -H können dem C-Preprozessor Optionen übergeben werden. Mit der Option -X lässt sich der Grad an Konformität mit dem C-Standard wählen. Die vom D-Compiler beim Aufruf des C-Preprozessors definierten Symbole werden in der Beschreibung der Option -X erklärt.

-D

Beim Aufruf von cpp(1); (mit der Option -C aktiviert) den angegebenen Name definieren. Wenn Sie ein Gleichheitsszeichen ( =) und einen zusätzlichen Wert angeben, wird dem Namen der entsprechende Wert zugewiesen. Diese Option übergibt jedem Aufruf von cpp die Option -D.

-e

Vorgang nach dem Kompilieren etwaiger Anforderungen und nach Verbrauch des anonymen Ablaufverfolgungsstatus (Option -a), aber noch vor dem Aktivieren von Prüfpunkten beenden. In Kombination mit der Option -a dient diese Option zum Ausgeben anonymer Ablaufverfolgungsdaten und Beenden, in Kombination mit Optionen des D-Compilers ermöglicht sie das Überprüfen der Kompilierfähigkeit von Programmen, ohne diese ausführen und die entsprechende Instrumentation aktivieren zu müssen.

-f

Namen der zu verfolgenden oder aufzulistenden (Option -l) Funktion angeben. Für das zugehörige Argument ist jede der Prüfpunktbeschreibungsformen Provider:Modul:Funktion, Modul:Funktion oder Funktion zulässig. Nicht angegebene Prüfpunktbeschreibungsfelder bleiben leer und treffen, unabhängig von ihren jeweiligen Werten in diesen Feldern, auf alle Prüfpunkte zu. Wenn in der Beschreibung keine Kennzeichner außer Funktion angegeben sind, trifft die Beschreibung auf alle Prüfpunkte mit der entsprechenden Funktion zu. Dem -f-Argument kann eine optionale D-Prüfpunktklausel angefügt werden. Die Option -f darf in der Befehlszeile mehrmals gleichzeitig verwendet werden.

-F

Ausgabe der Ablaufverfolgung durch Angabe von Funktionseintritt und -rückkehr zusammenfassen. Meldungen des Prüfpunkts für Funktionseintritt werden eingerückt und der Ausgabe wird -> vorangestellt. Meldungen des Prüfpunkts für Funktionsrückkehr werden nicht eingerückt und der Ausgabe wird <- vorangestellt.

-G

ELF-Datei mit eingebettetem DTrace-Programm generieren. Die im Programm angegebenen DTrace-Prüfpunkte werden in einem verschiebbaren ELF-Objekt gespeichert, das in ein anderes Programm eingebunden werden kann. Wenn die Option -o vorhanden ist, wird die ELF-Datei unter dem als Argument für diesen Operanden angegebenen Pfadnamen gespeichert. Wenn die Option -o nicht vorhanden und das DTrace-Programm in einer Datei Dateiname.s enthalten ist, wird die ELF-Datei unter dem Namen Datei.o gespeichert; anderenfalls wird die ELF-Datei unter dem Namen d.out gespeichert.

-H

Beim Aufruf von cpp(1); (mit der Option -C aktiviert) die Pfadnamen der enthaltenen Dateien ausgeben. Diese Option übergibt jedem Aufruf von -cpp die Option H und bewirkt so, dass der Befehl die Liste der Pfadnamen zeilenweise an stderr ausgibt.

-i

ID des zu verfolgenden oder aufzulistenden (Option (-l) Prüfpunkts angeben. Prüfpunkt-IDs werden, wie mit dtrace -l dargestellt, durch Dezimalzahlen angegeben. Dem -i-Argument kann eine optionale D-Prüfpunktklausel angefügt werden. Die Option -i darf in der Befehlszeile mehrmals gleichzeitig verwendet werden.

-I

Beim Aufruf von cpp(1) (mit der Option -C aktiviert) den angegebenen Verzeichnis-Pfad in den Suchpfad für #include-Dateien einfügen. Diese Option übergibt jedem Aufruf von cpp die Option -I. Das angegebene Verzeichnis wird vor der Standardverzeichnisliste in den Suchpfad eingefügt.

-l

Prüfpunkte auflisten, anstatt sie zu aktivieren. Wenn die Option -l angegeben ist, erzeugt dtrace einen Bericht der Prüfpunkte, die mit den die Optionen -P, -m, -f, -n, -i oder -s enthaltenden Beschreibungen übereinstimmen. Wenn keine dieser Optionen angegeben ist, werden alle Prüfpunkte aufgelistet.

-L

Den angegebenen Verzeichnispfad in den Suchpfad für DTrace-Bibliotheken einfügen. DTrace-Bibliotheken dienen zur Aufnahme geläufiger Definitionen, die beim Schreiben von D-Programmen verwendet werden können. Der angegebene Pfad wird hinter dem Standardsuchpfad für Bibliotheken eingefügt.

-m

Namen des zu verfolgenden oder aufzulistenden (Option (-l) Moduls angeben. Für das zugehörige Argument ist jede der Prüfpunktbeschreibungsformen Provider:Modul oder Modul zulässig. Nicht angegebene Prüfpunktbeschreibungsfelder bleiben leer und treffen, unabhängig von ihren jeweiligen Werten in diesen Feldern, auf alle Prüfpunkte zu. Wenn in der Beschreibung keine Kennzeichner außer Modul angegeben sind, trifft die Beschreibung auf alle Prüfpunkte mit dem entsprechenden Modul zu. Dem -m-Argument kann eine optionale D-Prüfpunktklausel angefügt werden. Die Option -m darf in der Befehlszeile mehrmals gleichzeitig verwendet werden.

-n

Name des zu verfolgenden oder aufzulistenden (Option (-l) Prüfpunkts angeben. Für das zugehörige Argument ist jede der Prüfpunktbeschreibungsformen Provider:Modul:Funktion:Name, Modul:Funktion:Name, Funktion:Name oder Name zulässig. Nicht angegebene Prüfpunktbeschreibungsfelder bleiben leer und treffen, unabhängig von ihren jeweiligen Werten in diesen Feldern, auf alle Prüfpunkte zu. Wenn in der Beschreibung keine Kennzeichner außer Name angegeben sind, trifft die Beschreibung auf alle Prüfpunkte mit dem entsprechenden Namen zu. Dem -n-Argument kann eine optionale D-Prüfpunktklausel angefügt werden. Die Option -n darf in der Befehlszeile mehrmals gleichzeitig verwendet werden.

-o

Ausgabedatei für die Optionen - A , -G und -l oder für die verfolgten Daten angeben. Wenn zwar die Option -A, nicht aber die Option -o vorhanden ist, gilt /kernel/drv/dtrace.conf als Standardausgabedatei. Wenn die Option -G vorhanden ist, das Argument der Option -s die Form Dateiname.d hat und -o nicht vorhanden ist, gilt Dateiname.o als Standardausgabedatei, anderenfalls d.out.

-p

Die angegebene Prozess-ID PID erfassen, ihre Symboltabellen zwischenspeichern und anschließend Vorgang beenden. Wenn die Option -p in der Befehlszeile mehrmals vorhanden ist, wird dtrace nach dem Ende aller Befehle ebenfalls beendet und meldet den Beendigungsstatus für jeden Prozess. Die erste Prozess-ID wird jedem in der Befehlszeile oder mit der Option -s angegebene D-Programm über die Makrovariable $target verfügbar gemacht. Weitere Informationen zu Makrovariablen finden Sie in Kapitel 15Scripting.

-P

Name des zu verfolgenden oder aufzulistenden (Option -l) Providers angeben. Die übrigen Prüfpunktbeschreibungsfelder, Modul, Funktion und Name, bleiben leer und treffen, unabhängig von ihren jeweiligen Werten in diesen Feldern, auf alle Prüfpunkte zu. Dem -P-Argument kann eine optionale D-Prüfpunktklausel angefügt werden. Die Option -P darf in der Befehlszeile mehrmals gleichzeitig verwendet werden.

-q

Quiet-Modus setzen. dtrace unterdrückt Meldungen wie zum Beispiel die Anzahl der mit den angegebenen Optionen und D-Programmen übereinstimmenden Prüfpunkte, und es werden weder Spaltenüberschriften, CPU-ID noch Prüfpunkt-ID ausgegeben noch Zeilenanfangszeichen in die Ausgabe eingefügt. Nur die mit D-Programmanweisungen wie trace() und printf() verfolgten und formatierten Daten werden an stdout ausgegeben.

-s

Angegebene D-Programmquelldatei kompilieren. Wenn die Option -e vorhanden ist, wird das Programm kompiliert, aber keine Instrumentation aktiviert. Wenn die Option -l vorhanden ist, wird das Programm kompiliert und die übereinstimmenden Prüfpunkte werden aufgelistet, aber keine Instrumentation wird aktiviert. Wenn weder -e noch -l vorhanden sind, wird die mit dem D-Programm angegebene Instrumentation aktiviert und die Ablaufverfolgung beginnt.

-S

Zwischencode des D-Compilers zeigen. Der D-Compiler erstellt einen Bericht über den für jedes D-Programm generierten Zwischencode und gibt ihn an stderr aus.

-U

Beim Aufruf von cpp(1) (mit der Option -C aktiviert) die Definition des angegebenen Namens auflösen. Diese Option übergibt jedem Aufruf von cpp die Option -U.

-v

Ausführlichen Modus setzen. Wenn die Option -v angegeben ist, erstellt dtrace einen Programmstabilitätsbericht, aus dem die niedrigste Schnittstellenstabilität und Abhängigkeitsstufe für die angegebenen D-Programme hervorgeht. DTrace-Stabilitätsstufen werden in Kapitel 39Stabilität ausführlich erläutert.

-V

Die höchste von dtrace unterstützte Version der D-Programmierschnittstelle melden. Die Versionsinformationen werden an stdout ausgegeben und der Befehl dtrace wird beendet. Weitere Informationen zu Versionsleistungsmerkmalen von DTrace finden Sie in Kapitel 41Versionsverwaltung.

-w

Destruktive Aktionen in D-Programmen zulassen, die mit den Optionen -s, -P, -m, -f, -n oder -i angegeben wurden. Wenn die Option -w nicht angegeben ist, lässt dtrace die Kompilierung oder Aktivierung eines D-Programms, das destruktive Aktionen enthält, nicht zu. Destruktive Aktionen werden ausführlicher in Kapitel 10Aktionen und Subroutinen erläutert.

-x

Eine DTrace-Laufzeitoption oder D-Compiler-Option aktivieren oder modifizieren. Die Optionen sind in Kapitel 16Optionen und Tunables aufgeführt. Boolesche Optionen werden durch Angabe ihres Namens aktiviert. Optionen mit Werten werden mit dem Optionsnamen und dem Wert, getrennt durch ein Gleichheitsszeichen (=) angegeben.

-X

Grad der Konformität mit dem ISO-C-Standard angeben, der beim Aufruf von cpp(1) (mit der Option -C aktiviert) gewählt werden soll. Das Argument der Option -X beeinflusst je nach dem Wert des Argumentbuchstabens den Wert und die Präsenz der __STDC__-Makro:

a (Standard)

ISO C plus K&R-Kompatibilitätserweiterungen mit semantischen Änderungen nach ISO C. Dies ist der Standardmodus, wenn -X nicht angegeben ist. Die vordefinierte Makro __STDC__ besitzt den Wert 0, wenn cpp in Verbindung mit der Option -Xa aufgerufen wird.

c (Konform)

Strikt ISO-C-konform ohne K&R C-Kompatibilitätserweiterungen. Die vordefinierte Makro __STDC__ besitzt den Wert 1, wenn cpp in Verbindung mit der Option -Xc aufgerufen wird.

s (K&R C)

Nur K&R C. Die Makro __STDC__ ist nicht definiert, wenn cpp in Verbindung mit der Option -Xs aufgerufen wird.

t (Zwischenstufe)

ISO C plus K&R C-Kompatibilitätserweiterungen ohne die von ISO C geforderten semantische Änderungen. Die vordefinierte Makro __STDC__ besitzt den Wert 0, wenn cpp in Verbindung mit der Option - Xt aufgerufen wird.

Da sich die Option -X nur darauf auswirkt, wie der D-Compiler den C-Preprozessor aufruft, sind die Optionen -Xa und -Xt aus der Sicht von D gleichwertig. Beide Optionen stehen zur Erleichterung der Weiterverwendung von Einstellungen aus C-Build-Umgebungen zur Verfügung.

Unabhängig vom -X-Modus werden die folgenden zusätzlichen C-Preprozessordefinitionen immer angegeben und sind immer in allen Modi gültig:

  • __sun

  • __unix

  • __SVR4

  • __sparc (nur auf SPARC®-Systemen)

  • __sparcv9 (nur auf SPARC®-Systemen bei der Kompilierung von 64-Bit-Programmen)

  • __i386 (nur auf x86-Systemen bei der Kompilierung von 32-Bit-Programmen)

  • __amd64 (nur auf x86-Systemen bei der Kompilierung von 64-Bit-Programmen)

  • __'uname -s' _'uname -r', ersetzt den Dezimalpunkt in der Ausgabe von uname mit einem Unterstrich (_), wie in __SunOS_5_10

  • __SUNW_D=1

  • __SUNW_D_VERSION=41xMMmmmuuu (wobei MM der Wert der Hauptversion in hexadezimaler Form, mmm der Wert der Unterversion in hexadezimaler Form und uuu der Wert der Micro-Version in hexadezimaler Form ist. Nähere Informationen zu DTrace-Versionen finden Sie in Kapitel 41Versionsverwaltung.)

-Z

Prüfpunktbeschreibungen zulassen, die auf keinen Prüfpunkt zutreffen. Wenn die Option -Z nicht angegeben ist, meldet dtrace einen Fehler und wird beendet, falls etwaige in D-Programmdateien (Option -s) oder in der Befehlszeile (Optionen -P, -m, -f, -n oder -i) angegebene Prüfpunktbeschreibungen Vereinbarungen enthalten, die auf keinen bekannten Prüfpunkt zutreffen.