Optionen


Nachfolgend eine kurze Beschreibung zu einigen Optionen von strace
-c
erstellt eine Zeitstatistik fuer jeden Systemaufruf und gibt diese am Ende aus.
-d
gibt eigene Debug-Informationen aus
-f
kreiert ein mit strace ueberwachter Prozess mit fork Kindprozesse, werden die Systemaufrufe dieser Kindprozesse ebenfalls protokolliert.
-ff
Wenn die Option -o file angegeben ist, werden die Systemaufrufe jedes Kindprozesses in der Datei file.pid protokolliert, wobei pid die PID des jeweiligen Kindprozesses ist.
-h
gibt Help-Informationen aus.
-i
Am Anfang jeder Zeile wird der Befehlszaehler (Instructions-Pointer) zum Zeitpunkt des Systemaufrufs ausgegeben.
-q
unterdrueckt die Meldungen ueber das Anhalten und Freigeben von Prozessen. Dies geschieht automatisch, wenn die Ausgabe in eine Datei umgelenkt wird. Diese Option ist nur sinnvoll in Verbindung mit den Optionen -f oder -p pid.
-r
Zu jedem Systemaufruf wird der Zeitabstand zum vorherigen Systemaufruf in Sekunden und Mikrosekunden ausgegeben.
-t
Am Anfang jeder Zeile wied die aktuelle Uhrzeit im Format hh:mm:ss ausgegeben.
-tt
wie -t, nur das noch die Mikrosekunden mitausgegeben wird.
-ttt
Am Anfang jeder Zeile wird die aktuelle Uhrzeit in Sekunden und Mikrosekunden (seit Beginn der Epoche) ausgegeben.
-T
Am Ende jeder Zeile wird die von diesem Systemaufruf benoetigte Zeit ausgegeben.
-v
Alle komplexen Daten werden vollstaendig ausgegeben. Hierzu gehoeren z. B. Strukturen und Stringarrays. Normalerweise werden hierzu nur die ersten Komponenten oder Zeichen ausgegeben.
-V
gibt die Versionsnummer aus.
-x
Nichtdruckbare Zeichen in Strings werden als hexadezimale Zahlen ausgegeben.
-xx
Alle Zeichen in Strings werden als hexadezimale Zahlen ausgegeben.
-a column
Die Rueckgabewerte der Systemaufrufe werden in die Spalte column geschrieben. Voreinstellung ist -a 40.
-e expr
Hier kann ein Ausdruck expr angegeben weden, der die Protokollierung der Systemaufrufe genauer festlegt. Der Ausdruck hat folgendes Format [typ=][!][wert1[,wert2]..
Fuer typ kann trace, abbrev, verbose, raw, signal, faults, read oder write angegeben werden. Der Wer ist entweder ein Name oder eine Zahl; der voreingestellte Typ ist trace. Wird das Ausrufezeichen angegeben, so negiert es den Wert. Die Angabe von -e open, welche identisch zur Angabe -e trace=open ist, bewirkt, dass nur die open-Aufrufe von strace protokolliert werden. Bei der Angabe von -e trace=!open dagegen werden alle Systemaufrufe ausser open protokolliert. Als Spezialfaelle kann fuer die Werte auch all oder none angegeben werden.
-e abbrev=wert
beeinflusst die Ausgabe der einzelnen Komponententen von grossen Strukturen. Voreinstellung ist abbrev=all.
-e faults
Falsche Speicherzugriffe werden mitausgegeben. Diese Option wird aber nur von System V angeboten.
-e raw=liste
gibt die Argumente der in liste angegebenen Systemaufurfe nicht symbolisch, sondern als hexadezimale Zahlen aus.
-e read=liste
gibt bei allen Leseoperationen, die auf die in liste angegebenen Filedeskriptoren stattfinden, die gelesenen Daten als Hexa- und ASCII-Dump aus. Um sich z. B. alle von den Filedeskriptoren 3 und 5 gelesenen Daten anzeigen zulassen, muss strace -e read=3,5 angegeben werden.
-e signal=list
Es werden nur die in liste angegebenen Signale ausgegeben, wenn sie auftreten. Die Voreinstellung ist -e signal=all. Moechte man sich z. B. alle auftretenden Signale ausser SIGUSR1 anzeigen lassen, muss strace -e signal=!SIGUSR1 verwendet werden.
-e trace=liste
Es werden nur die Systemaufrufe protokolliert, die in liste angegeben sind.
-e trace=file
Es werden alle Systemaufrufe protokolliert, die zum Filesystem gehoeren.
-e trace=ipc
Es werden alls Systemaufrufe protokolliert, die zur Interprozesskommunukation (IPC von System V) gehoeren.
-e trace=network
Es werden alls Systemaufrufe protokolliert, die zur Netzwerkkommunikation gehoeren.
-e trace=process
Es werden alls Systemaufrufe protokolliert, die zur Prozesssteuerung gehoeren.
-e trace=signal
Es werden alls Systemaufrufe protokolliert, die zur Signalbehandlung gehoeren.
-e verbose=liste
Fuer alle Systemfunktionen, die in liste angegeben sind, wird bei Argumenten, die Zeiger auf Strukturen sind, der Inhalt der Strukturen und nicht nur der Zeigerwert (als hexadezimale Zahl) ausgegeben.
-e write=liste
gibt bei allen Schreiboperationen, die auf die in liste angegebenen Filedesktiptoren stattfinden, die geschriebenen Datein als Hexa- und ASCII-Dump aus. Um sich z. B. alle auf die Filedesktiptoren 3 und 5 geschriebenen Daten anzeigen zu lassen, muss strace -e write=3,5 angegeben werden.
-o file
schreibt seine Ausgabe nicht auf die Standardfehlerausgabe, sondern in die Datei file. Ist die Option -ff angegeben, wird die Ausgabe in die Datei file.pid geschrieben, wobei die PID die des Prozesses eingesetzt wird.
-O overhead
Durch das Protokollieren der Systemaufrufe entsteht ein Overhead, der eine mit -c erstellte Statistik verfaelscht. So kann der heuristisch vom Programm selbst ermittelte Wert korrigiert werden. Die Genauigkeit kann ein Aufrufer selbst ueberpruefen. Dazu muss er nur die Systemzeit, die das zu ueberwachende Programm verbraucht, mit dem Kommando time und der Option -c ermitteln und beide Werte vergleichen. Fuer overhead sind Mikrosekunden anzugeben.
-p pid
schaltet eine Ueberwachung fuer den gerade ablaufenden Prozess mit der angegebenen PID ein.
-s strsize
legt fest, dass fuer Strings strsize Zeichen auszugeben sind. Dateinamen zaehlen nicht zu solchen Strings, da diese immer vollstaendig auszugeben werden.
-S sortby
sortiert die Statistik, die bei der Angabe der Option -c erstellt wird, nach der Spalte sortby. Fuer sortby kann time, calls, name oder nothing (fuer unsortiert) angegeben werden. Die Voreinstellung ist -S time


Zurueck || Index || Vor