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.
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.
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!