GNU/Linux >> LINUX-Kenntnisse >  >> Ubuntu

11 Strace-Befehl mit Beispiel in Linux

Strace ist ein sehr leistungsfähiges Debugging-Befehlszeilendienstprogramm, das bei der Fehlerbehebung hilft, indem es die Systemaufrufe und Signale des jeweiligen Programms überwacht. Falls wir keinen Quellcode zur Verfügung haben, kann strace verwendet werden, um zu analysieren, wie ein Programm mit dem System interagiert. In diesem Artikel werden wir einige wichtige Strace-Befehle zur Fehlersuche und zum Debuggen von Programmen und Prozessen in Linux besprechen.

Installation

Die Installation der strace Utility-Tools ist unkompliziert und einfach. Verwenden Sie den folgenden Befehl, um die Anwendung gemäß Ihrer Linux-Distribution zu installieren.

Debian/Ubuntu

$ sudo apt install strace

RedHat/CentOS

$ yum install strace

Überprüfen Sie die Installation, indem Sie den folgenden Befehl ausführen

$ strace -V

Ausgabe:

1.Linux-Befehlssystemaufrufe mit strace verfolgen

Strace ist hilfreich beim Verfolgen von Aufrufen des Linux-Befehlssystems. In diesem Beispiel ein einfacher Befehl pwd wird zum Tracing verwendet.

$ strace pwd

Ausgabe:

2. Ablaufprotokoll in eine Datei umleiten

Das Ablaufverfolgungsprotokoll für Systemaufrufe kann mithilfe des Befehls strace wie folgt in eine Datei umgeleitet werden:

$ strace -o pwd-log.txt pwd

Verwenden Sie den cat-Befehl, um den Inhalt der Datei wie folgt zu finden:

$ cat pwd-log.txt

3. Verwenden Sie strace, um eine Zusammenfassung der Systemaufrufe anstelle der regulären Ausgabe zu drucken.

Die Verwendung von strace mit der Option -c ermöglicht das Drucken der Protokollzusammenfassung. In diesem Beispiel wird eine Zusammenfassung des Linux-Befehls pwd präsentiert.

$ strace -c pwd

Ausgabe:

4. Verfolge bestimmte Systemaufrufe mit strace

Der Strace-Befehl mit der Option -e und dem Trace-Typ (Lesen, Schreiben) kann verwendet werden, um bestimmte Systemaufrufe zu verfolgen. In diesem Beispiel wird der Schreibsystemaufruf für den Befehl pwd.

verfolgt
$ strace -e trace=write pwd

Ausgabe:

5. Strace-Befehl zum Drucken des Zeitstempels jedes Systemaufrufs.

Der Strace-Befehl mit der Option -r kann verwendet werden, um alle relativen Zeitstempel jedes Systemaufrufs auszudrucken.

$ strace -r pwd

Ausgabe:

6. Ablaufverfolgung mit Prozess-ID

Wenn bereits ein Prozess im System läuft, können die Systemaufrufe mithilfe des Befehls strace mit der Option -p zusammen mit der Prozess-ID verfolgt werden. In diesem Beispiel wird die Prozess-ID von nginx zum Tracing verwendet

Syntax

$ strace -p <process id>
$ strace -p 12842

Die Ablaufverfolgung kann durch Drücken von Strg+C gestoppt werden.

7. Strace-Befehl zum Drucken der Debugging-Ausgabe

Der Strace-Befehl mit der Option -d kann zum Drucken der Debugging-Ausgabe verwendet werden. In diesem Beispiel wird ein einfacher Linux-Befehl pwd zum Tracing verwendet.

$ strace -d pwd

Ausgabe:

8. Strace-Befehl zum Ausdrucken der für Systemaufrufe aufgewendeten Zeit.

Der Strace-Befehl mit der Option -T gibt die für Systemaufrufe aufgewendete Zeit wie folgt an:

$ strace -T pwd

Ausgabe:

9. Strace-Befehl zum Drucken des Anweisungszeigers

Der Strace-Befehl mit der Option -i gibt den Anweisungszeiger aus. In diesem Beispiel wird ein einfacher Linux-Befehl pwd zum Tracing verwendet.

$ strace -i pwd

Ausgabe:

10. Strace-Befehl zum Verfolgen von Systemaufrufen basierend auf einer bestimmten Bedingung

Der Strace-Befehl kann verwendet werden, um Systemaufrufe basierend auf bestimmten Bedingungen wie Speicher, Prozess, CPU usw. zu verfolgen. In diesem Beispiel werden Systemaufrufe im Zusammenhang mit der Speicherverwaltung für einen einfachen Linux-Befehl pwd verfolgt.

$ strace -q -e Speicherpwd

Ausgabe:

11. Strace-Befehl zum Verfolgen signalbezogener Systemaufrufe

Signalbezogene Systemaufrufe können verfolgt werden, indem der Trace-Typ im Befehl definiert wird. In diesem Beispiel nc -v -n localhost 80 wird zum Verfolgen von Systemaufrufen verwendet, die sich auf das Signal beziehen.

$ strace -e trace=signal nc -v -n 127.0.0.1 80

Ausgabe:

Schlussfolgerung

In diesem Artikel haben wir gelernt, was das Strace Utility Tool ist und wann es verwendet werden kann. Außerdem habe ich einige wichtige strace-Befehle behandelt, um Systemaufrufe und -prozesse zu beheben und zu debuggen.


Ubuntu
  1. Tutorial für Linux-Ping-Befehle mit Beispielen

  2. Linux-Quellbefehl mit Beispielen

  3. dpkg-Befehl in Linux mit Beispielen

  4. Linux Tee-Befehl mit Beispielen

  5. JQ-Befehl in Linux mit Beispielen

Sortierbefehl in Linux mit Beispielen

Linux-IP-Befehl mit Beispielen

Df-Befehl unter Linux

Linux-Datumsbefehl mit Beispielverwendungen

w Befehl mit Beispielen in Linux erklärt

ssh-keygen Befehl erklärt mit Beispiel in Linux