Heim  >  Artikel  >  Betrieb und Instandhaltung  >  Welche Methoden gibt es zum Programm-Debuggen unter Linux?

Welche Methoden gibt es zum Programm-Debuggen unter Linux?

王林
王林Original
2019-12-06 11:01:193815Durchsuche

Welche Methoden gibt es zum Programm-Debuggen unter Linux?

1. Verwenden Sie die „print“-Anweisung

Dies ist eine grundlegende Methode zum Debuggen von Problemen. Wir fügen Druckanweisungen an verdächtigen Stellen im Programm ein, um den laufenden Flusskontrollfluss des Programms und Änderungen an Variablenwerten zu verstehen.

Der Nachteil besteht darin, dass das Programm bearbeitet, eine „print“-Anweisung hinzugefügt und neu kompiliert und ausgeführt werden muss, um die Ausgabe zu erhalten. Wenn das zu debuggende Programm relativ groß ist, ist dies eine zeitaufwändige und arbeitsintensive Methode.

2. Abfrage verwenden

In einigen Fällen müssen wir den Status und die Speicherzuordnung eines Prozesses ermitteln, der im Kernel ausgeführt wird. Um diese Informationen zu erhalten, müssen wir keinen Code in den Kernel einfügen. Verwenden Sie stattdessen das Dateisystem /proc. Im Pseudodateisystem von /proc werden die beim Start des Systems gesammelten Laufinformationen (CPU-Informationen, Speicherkapazität usw.) beibehalten. Die Ausgabe von

ls -l /proc enthält einen Eintrag, der nach der Prozess-ID im /proc-Dateisystem für jeden im System ausgeführten Prozess benannt ist. Detaillierte Informationen zu jedem Prozess finden Sie in der Datei im Verzeichnis, das der Prozess-ID entspricht. Es kann auch „ls /proc/pid“ ausgegeben werden.

Kostenlose Video-Tutorial-Empfehlung: Linux-Video-Tutorial

3. Verwenden Sie Tracking

strace und ltrace sind zwei A-Tracing-Tools Wird unter Linux verwendet, um die Ausführungsdetails eines Programms zu verfolgen.

strace:

strace fängt Systemaufrufe und die von ihnen empfangenen Signale ab und zeichnet sie auf. Dem Benutzer werden die Systemaufrufe, die an sie übergebenen Parameter und die Rückgabewerte angezeigt. strace kann an einen bereits laufenden Prozess oder an einen neuen Prozess angehängt werden. Es eignet sich als Diagnose- und Debugging-Tool für Entwickler und Systemadministratoren.

Es kann auch als Werkzeug verwendet werden, um das System zu verstehen, indem verschiedene Programmaufrufe verfolgt werden. Der Vorteil dieses Tools besteht darin, dass es keinen Quellcode benötigt und das Programm nicht neu kompiliert werden muss.

Die grundlegende Syntax für die Verwendung von Strace lautet:

strace 命令

Die Ausgabe von Strace ist sehr lang und wir sind normalerweise nicht an jeder angezeigten Zeile interessiert. Wir können die Option „-e expr“ verwenden, um unerwünschte Daten zu filtern.

Verwenden Sie die Option „-p pid“, um eine Bindung an einen laufenden Prozess herzustellen.

Mit der Option „-o“ kann die Ausgabe des Befehls in eine Datei umgeleitet werden.

Welche Methoden gibt es zum Programm-Debuggen unter Linux?

strace wird nur auf die Ausgabe von Systemaufrufen gefiltert.

ltrace:

ltrace verfolgt und zeichnet die dynamischen (Laufzeit-)Bibliotheksaufrufe eines Prozesses und die von ihm empfangenen Signale auf. Es kann auch von einem Prozess getätigte Systemaufrufe verfolgen. Seine Verwendung ähnelt Strace. Die Option

ltrace command

'-i' gibt den Anweisungszeiger beim Aufruf der Bibliothek aus. Die Option

'-S' wird verwendet, um Systemaufrufe und Bibliotheksaufrufe anzuzeigen.

Welche Methoden gibt es zum Programm-Debuggen unter Linux?

Trace erfasst die Ausgabe des Bibliotheksaufrufs „STRCMP“.

Empfohlene verwandte Artikel und Tutorials: Linux-Tutorial

Das obige ist der detaillierte Inhalt vonWelche Methoden gibt es zum Programm-Debuggen unter Linux?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn