Vorwort gdb ist ein sehr nützliches Debugging-Tool unter Linux. Obwohl es ein Debugging-Tool im Befehlszeilenmodus ist, sind seine Funktionen leistungsfähiger, als Sie sich vorstellen können. Hier ist eine kurze Einführung in die Verwendung von gdb. Freunde in Not können sich die ausführliche Einführung unten ansehen. Haltepunkte An einer angegebenen Stelle im Code unterbrechen, wodurch das Programm dort unterbrochen wird.
Beispiele: (gdb) unterbricht sc_smartcontract_handler.cpp:45 Haltepunkt 4 bei 0x424d42: Datei sc_smartcontract_handler.cpp, Zeile 45. Haltepunktbezogene Vorgänge
Aussichtspunkt Erfassungspunkte werden verwendet, um bestimmte Ereignisse während der Programmausführung zu erfassen. Wie zum Beispiel: Laden gemeinsam genutzter Bibliotheken (Dynamic Link Libraries), C++-Ausnahmen usw. Es wird häufig verwendet, um Fehler zu lokalisieren. Das Befehlsformat zum Erfassen eines Punktes ist: catch <Ereignis>, wobei das Ereignis Folgendes sein kann:
Mit dem Befehl info watchpoints [n] können Sie die aktuellen Watchpoint-Informationen anzeigen. Anzeigen von Variablen Die gebräuchlichste Art, Variablen anzuzeigen, ist
(gdb) drucke argc 1 USD = 1 Wenn Sie ein Array drucken, wird das Ende des gedruckten Arrays aufgrund der Standardeinstellungen möglicherweise nicht angezeigt. Sie können die maximale Länge des gedruckten Arrays mit dem folgenden Befehl festlegen:
Code während des Debuggens anzeigen
Obwohl die Liste sehr praktisch ist, ist sie dennoch nicht zufriedenstellend. Es wäre schön, wenn der Code während der Ausführung angezeigt werden könnte. Die Antwort ist ja. Verwenden Sie den folgenden Befehl, um gdb zu starten: gdb -tui Projektname oder geben Sie nach dem Starten von gdb den Befehlsfokus ein, wie in der Abbildung gezeigt: Fortsetzen der Programmausführung und des Debuggens in einzelnen Schritten In gdb lauten die mit der schrittweisen Fehlerbehebung verbundenen Befehle hauptsächlich wie folgt:
Unterbrechung in einem bestimmten Thread Sie können definieren, ob Ihr Haltepunkt auf allen Threads oder auf einem bestimmten Thread liegen soll. GDB kann Ihnen dabei problemlos helfen.
„linespec“ gibt die Quellzeilennummer an, in der der Haltepunkt gesetzt ist. threadno gibt die Thread-ID an. Beachten Sie, dass diese ID von GDB zugewiesen wird. Sie können Thread-Informationen im laufenden Programm über den Befehl „info threads“ anzeigen. Wenn Sie den Thread <threadno> nicht angeben, bedeutet dies, dass Ihr Haltepunkt für alle Threads festgelegt ist. Sie können auch Haltepunktbedingungen für einen Thread angeben. wie: (gdb) unterbreche frik.c:13 Thread 28, wenn Bartab > lim Wenn Ihr Programm von GDB gestoppt wird, werden auch alle laufenden Threads gestoppt. Dadurch können Sie den Gesamtstatus des laufenden Programms sehen. Wenn Sie das Programm fortsetzen, werden alle Threads fortgesetzt. Auch wenn der Hauptprozess in einzelnen Schritten debuggt wird. Zusammenfassen Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, dass der Inhalt dieses Artikels einen gewissen Lernwert für Ihr Studium oder Ihre Arbeit hat. Wenn Sie Fragen haben, können Sie eine Nachricht hinterlassen. Vielen Dank für Ihre Unterstützung von 123WORDPRESS.COM. Das könnte Sie auch interessieren:
|
<<: MySQL 5.7.18 Installations- und Konfigurations-Tutorial unter Windows
>>: So verwenden Sie JSX zum Implementieren von Karussellkomponenten (Front-End-Komponentenbildung)
Wenn Sie sich remote bei MySQL anmelden, gelten f...
Beim Konfigurieren unterschiedlicher Servlet-Pfad...
GTID-basierte Replikation Einführung Die GTID-bas...
Von der Entwicklung bis zur Bereitstellung: Mache...
Die Kodierung von Webseiten wird im Englischen als...
RPM-Paketverwaltung Ein Verpackungs- und Installa...
In diesem Artikelbeispiel wird der spezifische Co...
Wenn wir SQL zum Extrahieren von Daten verwenden,...
Verwendung von integrierten Funktionen in der Dat...
Die Einrichtung eines MySQL-Index ist für den eff...
Problembeschreibung Nach der Installation des Plu...
1. 85 % der Anzeigen werden nicht gelesen <br ...
In diesem Artikelbeispiel wird der spezifische Co...
1. Beim Öffnen der Webseite wird die Meldung „503...
Inhaltsverzeichnis Methode 1: Routing von Metainf...