In einfachen Worten, strace verfolgt alle von einem Programm ausgegebenen Systemaufrufe zusammen mit ihren Rückkehrcodes. Denken Sie an Dinge wie Datei-/Socket-Operationen und viel obskurere.
Es ist am nützlichsten, wenn Sie über Grundkenntnisse in C verfügen, da Systemaufrufe hier eher für standardmäßige C-Bibliotheksaufrufe stehen würden.
Nehmen wir an, Ihr Programm ist /usr/local/bin/cough. Verwenden Sie einfach:
strace /usr/local/bin/cough <any required argument for cough here>
oder
strace -o <out_file> /usr/local/bin/cough <any required argument for cough here>
in 'out_file' zu schreiben.
Alle strace-Ausgaben gehen an stderr (Vorsicht, die schiere Menge verlangt oft nach einer Umleitung zu einer Datei). Im einfachsten Fall bricht Ihr Programm mit einem Fehler ab und Sie können sehen, wo seine letzten Interaktionen mit dem Betriebssystem in der Strace-Ausgabe waren.
Weitere Informationen sollten verfügbar sein mit:
man strace
Strace-Übersicht
strace kann als leichtgewichtiger Debugger angesehen werden. Es ermöglicht einem Programmierer / Benutzer, schnell herauszufinden, wie ein Programm mit dem Betriebssystem interagiert. Dies geschieht durch Überwachung von Systemaufrufen und -signalen.
Verwendung
Gut, wenn Sie keinen Quellcode haben oder sich nicht die Mühe machen möchten, ihn wirklich durchzugehen.
Auch nützlich für Ihren eigenen Code, wenn Sie keine Lust haben, GDB zu öffnen, sondern nur daran interessiert sind, externe Interaktionen zu verstehen.
Eine gute kleine Einführung
Hier ist eine sanfte Einführung in die Verwendung von strace zum Debuggen von Prozesshängen:strace Introduction