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