Linux Strace -Befehl

Linux Strace -Befehl
Linux bietet eine Fülle von Debugging -Tools für Fehlerbehebungsdienste und Anwendungen. Ein vorteilhaftes Werkzeug für Entwickler ist der Linux Strace -Befehl. Der Befehl Strace ist ein Tool für Debugging und Fehler. Es bietet eine ausführliche binäre Sequenz von Anfang an bis zum Ende.

In diesem Tutorial befassen wir uns mit dem Befehl Linux Strace und demonstrieren einige Beispielanwendungen.

Grundlegende Befehlssyntax

Der Befehl Strace nimmt die folgende Syntax an:

$ Strace Optionsbefehl

So installieren Sie den Befehl Linux Strace

Die meisten modernen Linux -Verteilungen werden standardmäßig mit Strace Utility versandt. Wenn Strace jedoch aus irgendeinem Grund nicht in Ihrem System installiert ist, befolgen Sie die folgenden Schritte, um es zu installieren.

Auf Debian / Ubuntu

Wenn Sie Debian / Ubuntu-basierte Systeme ausführen, führen Sie aus:

$ sudo Apt installieren Sie Strace

Auf rhel / centos

$ sudo yum install Strace

Um zu überprüfen, ob Strace installiert ist, können Sie die Version wie gezeigt überprüfen.

$ strace -Verssion

Schauen wir uns nun ein paar Beispielnutzungen an.

Basic Strace -Befehl

In seinem grundlegendsten Format verfolgt und zeigt der Befehl Strace Systemanrufe, die Argumente (in quadratische Klammern oder Klammern eingeschlossen) und den ausführbaren Anruf.

Im folgenden Beispiel können wir die Argumente des Ausführens des Skripts sehen Hallo.Sch, Rufen Sie in Klammern in der ersten Zeile an.

$ strace ./Hallo.Sch

In der allerletzten Zeile sehen Sie den Exit -Status des Befehls in diesem Fall 0. Dies impliziert, dass der Befehl ohne Fehler erfolgreich ausgeführt wurde. Ein Exit -Code von -1 bedeutet, dass während der Ausführung ein Fehler aufgetreten ist.

Zählen Sie die Systemaufrufe

Wenn Sie die Anzahl der Systemanrufe erhalten möchten, verwenden Sie die -C Option für die Zählung wie gezeigt.

$ strace -c ./Hallo.Sch

Aus der obigen Ausgabe können Sie die Anzahl der getätigten Systemanrufe sehen, einschließlich der Tätigkeit der Anrufe.

Zeigen Sie bestimmte Systemaufrufe mit Strace an

Darüber hinaus können Sie die Art von Systemanrufen mit Strace mit dem sehen -e Option, gefolgt von der Art des Systemaufrufs. In dem gezeigten Ausschnitt haben wir die Schreib- und Lesesystemaufrufe angezeigt.

$ strace -e Trace = schreiben ./Hallo.Sch
$ strace -e Trace = lesen ./Hallo.Sch

Trace -Netzwerksystemanrufe

Sie können Strace auf das Anzeigen von Netzwerksystemanrufen beschränken, indem Sie den Anruftyp angeben. Hier. Trace = Netzwerk Gibt an, dass wir beabsichtigen, den Netzwerkanruf des Netzwerkbefehls zu erhalten Ping 8.8.8.8 -c 4.

$ strace -e Trace = Netzwerkping 8.8.8.8 -c 4

Trace -Signalsystemaufrufe

Verwenden Sie für systembezogene Anrufe das Argument, wie im folgenden Befehl angegeben. Der Befehl druckt den Signalanrufer für die aus Ping 8.8.8.8 -c 4 Befehl.

$ strace -e Trace = Signal Ping 8.8.8.8 -c 4

Drucken des Zeitstempels jedes Systemaufrufs

Verwenden Sie den Zeitstempel für jeden Systemaufruf, um den Zeitaufruf zu extrahieren -R Option, wie im folgenden Befehl gezeigt.

$ strace -r ping 8.8.8.8 -c 4

Wie Sie sehen können, wird für jeden Systemaufruf ein relativer Zeitstempel gedruckt. Der Zeitunterschied zwischen aufeinanderfolgenden Systemaufrufen wird erfasst und aufgezeichnet.

Zeigen Sie die Dauer an, die für Systemanrufe aufgewendet wird

Darüber hinaus können Sie die Zeitdauer der für jeden Systemaufruf mit dem Aufruf ausgegebenen Zeit ausdrucken -T Option wie gezeigt. Die verbrauchte Zeit wird in der allerletzten Spalte wie angegeben angegeben.

$ strace -t ping 8.8.8.8 -c 4

Zeigen Sie die genaue Zeit jedes Systemaufrufs an

Um die tatsächliche oder genaue Zeit der Systemaufrufe zu drucken, rufen Sie die auf -T Option wie gezeigt. Die Zeit in Echtzeit oder Wandtakt wird in der ersten Spalte gedruckt.

$ strace -t ./Hallo.Sch

Zeigen Sie den Befehlszeiger für jeden Anruf an

Verwenden Sie den Anweisungszeiger für jeden Systemaufruf, um die -ich Möglichkeit.

$ strace -i ./Hallo.Sch

Speichern Sie die Ausgabe von Systemaufrufen in einer Textdatei

Schließlich gibt der Befehl Strace Ihnen die Möglichkeit, die Ausgabe in einer Textdatei zu speichern, wie gezeigt.

$ strace -o sample_output.txt ./Hallo.Sch

Hier, sample_output.txt ist die Ausgabedatei, während ./Hallo.Sch ist der Befehl, dessen Systeme wir nachverfolgen.

Einpacken

Der Befehl Strace ist ein praktisches und leistungsstarkes Dienstprogramm für Befehlszeilen, mit dem Debug-Anwendungen, Befehle und Prozesse debuggen, insbesondere wenn Sie nicht den Quellcode zur Verfügung haben. Es ist das Tool der Wahl für Softwareentwickler und Systemadministratoren.