Liste der GDB -Befehle und was sie tun

Liste der GDB -Befehle und was sie tun
Wenn Sie mit C ++, C oder Forran arbeiten, werden Sie auf das GDB stoßen, ein Akronym für die GNU Debugger, Wird für Debugging -Programme in C, C ++ und anderen Sprachen verwendet. Der Debugger kann auf dem Terminal aufgerufen werden und wird am Linux -Terminal vorinstalliert. Um den GNU -Debugger am Terminal bequem zu sein, ist es wichtig, die verschiedenen verfügbaren Befehle und was sie tun. Dieser Leitfaden deckt die wichtigsten Befehle ab und geben Beispiele für die Verwendung. Schau sie dir an!

Gemeinsame GDB -Befehle

Es gibt verschiedene Möglichkeiten, den GNU -Debugger aufzurufen. Sie können direkt eingeben GDB auf dem Terminal, um seine Konsole zu öffnen.

Alternativ können Sie den Debugger mit einer ausführbaren Datei anrufen. Wenn Sie eine ausführbare Datei wie ein C- oder C- oder C ++ - Programm haben, das Sie debuggen möchten, können Sie sie mit dem kompilieren -G Möglichkeit. Für unser Beispiel werden wir a verwenden Probe1.CPP Datei.

Um es mit dem G ++ - Compiler zu kompilieren, wird der Befehl sein:

$ g ++ -g -o Sample1 Sample11.CPP

Hier fügen wir die Option -o hinzu, das kompilierte Programm in die benannte Datei zu schreiben Probe1.

Nach der Kompilierung können Sie den GNU -Debugger aufrufen, während Sie die kompilierte Ausgabedatei an Debuggen anhängen. Der Befehl wird sein:

$ gdb sample1

Eine Konsole eröffnet und Sie können die verfügbaren GDB -Befehle verwenden, um verschiedene Aktivitäten auszuführen. Die gemeinsamen Befehle umfassen:

1. aufhören: Um die GDB -Konsole zu verlassen, geben Sie beendet oder Q.

2. rennen [args]: Basierend auf den Funktionen im Programm können Sie die Funktion aufrufen, die mit diesem Befehl ausgeführt und die erforderlichen Argumente hinzufügen soll. Für unseren Fall haben wir das Getquare Funktion, die ein Argument der Nummer nimmt. Wenn wir daher das Quadrat einer Zahl erhalten müssen, tippen wir ein laufen gefolgt von der Nummer. Lassen Sie uns zum Beispiel das Quadrat von 6 bekommen. Die Ausgabe erfolgt wie unten gezeigt:

Unten können Sie feststellen, dass das Programm die Ausgabe des Quadrats zurückgegeben hat. Sie können mehr Optionen mit unterschiedlichen Argumenten ausführen.

3. Hilfe: Es öffnet die manuelle Seite für den GNU -Debugger mit allen für die Verwendung verfügbaren Befehleklassen.

Sie können die Hilfeseite eingrenzen, indem Sie angeben, welche Befehleklasse Sie erhalten möchten, um ihre manuelle Seite zu erhalten. Dafür wird die Syntax unten verwendet:

$ help [Klassenname]

Zum Beispiel, um die manuelle Seite für die Klasse zu erhalten Betrieb, Die folgende Ausgabe ist:

4. brechen: Wenn Sie das Programm debuggen müssen, können Sie mit dem Befehl Break verschiedene Haltepunkte hinzufügen. Außerdem gibt es mehrere Möglichkeiten, einen Haltepunkt hinzuzufügen.

Die gemeinsamen Wege umfassen:

B [Funktionsname]
Break [Zeilennummer]
Break [Funktionsname]
Break *[Adresse]

Wenn Sie beispielsweise einen bestimmten Funktionsnamen im Programm kennen und zum Debuggen einen Haltepunkt erstellen möchten, können Sie die vorherige Syntax verwenden. Erstellen wir einen Haltepunkt für eine Funktion namens namens Getquare Im folgenden Programm:

In der vorherigen Ausgabe haben wir den Haltepunkt und die angezeigten Informationen in der Konsole erstellt.

Wenn Sie versuchen, das Programm auszuführen, wird es am Haltepunkt innehalten. Lassen Sie uns zum Beispiel das Quadrat von 12 verwenden Lauf 12.

Der Debugger hält am Haltepunkt an, an dem sich der angegebene Funktionsname befindet. Zu diesem Zeitpunkt können Sie Ihr Programm debuggen und fortfahren, sobald Sie alles gut funktionieren lassen.

5. Weiter oder c: Wenn das Debuggen abgeschlossen ist und Sie die Ausführung des Befehls ohne den Set -Breakpoint fortsetzen möchten, führen Sie den Befehl weiter aus,. Es wird den Befehl bis zum nächsten Haltepunkt oder am Ende des Programms ausführen. Wenn Sie die Anzahl der Male hinzufügen möchten, um den Befehl weiter zu wiederholen, fügen Sie die Anzahl hinzu.

Die beiden Syntaxe sind:

weiter oder c
C [Wiederholung]

Lassen Sie uns für unseren Fall ohne Wiederholungszahlen fortfahren.

Es gibt die Ausgabe des angehaltenen Befehls. Wenn wir unterschiedliche Argumente hätten, würde dies jedes Ergebnis nach einem Haltepunkt liefern. Lassen Sie uns zum Beispiel aufrufen Lauf 4 6 8, Dann benutze die weitermachen Befehl, um zu sehen, was passiert.

Sie werden nach jedem Argument feststellen, dass das Programm einen Haltepunkt erfüllt. Wenn wir den Befehl weiter ausführen, wird seine Ausführung fortgesetzt.

6. nächste: Wenn das Programm einen Haltepunkt trifft, können Sie eingeben nächste oder N Um die nächste Zeile in der Ausführung zu drucken.

7. löschen: Wenn Sie unterschiedliche Haltepunkte und Kontrollpunkte haben, können Sie sie mit dem folgenden Befehl löschen. Wenn du läufst D oder löschen Ohne Argumente löscht es alle Haltepunkte und Kontrollpunkte. Sie können jedoch angeben, welche Sie löschen sollen, indem Sie seine Nummer auswählen.

8. klar: Um einen Breakpoint zu löschen, der einem bestimmten Funktionsnamen zugeordnet ist, verwenden Sie den nächsten Clear -Befehl, gefolgt vom Funktionsnamen:

Zu diesem Zeitpunkt haben wir keinen Haltepunkt mehr in unserem Programm.

Wenn das Löschen eines Haltepunkts keine Option ist, wie wäre es mit Deaktivieren und Aktivitäten, wann immer Sie möchten?

9. deaktivieren Und ermöglichen: Um einen Haltepunkt zu deaktivieren, geben Sie seine Nummer an.

Verwenden Sie später den Befehl aktivieren, gefolgt von der Nummer, um ihn zurück zu aktivieren.

10. die Info: Sie können die Details zu den verfügbaren Kontrollpunkten und Haltepunkten abrufen. Verwenden Sie den folgenden Befehl, um die Details aller Haltepunkte oder Kontrollpunkte zu erhalten:

Info -Haltepunkte
Info -Checkpoints

Verwenden Sie die folgende Syntax, um einen Breakpoint oder Checkpoint anzugeben:

Info Breakpoints [Breakpoint-Number]
Info-Checkpoint [Breakpoint-Number]

11. Args setzen: Um eine Argumentliste festzulegen, die bei der Ausführung des laufen Befehl, verwenden Sie festgelegte Argumente, gefolgt von den Argumenten. Zum Beispiel:

Setzen Sie Args 2 4

Wenn wir den Laufbefehl aufrufen, wird das Quadrat der beiden Argumente erhalten.

Sie können die verfügbare Liste der Argumente mit dem anzeigen args zeigen Befehl.

Abschluss

Wir haben die häufigste GDB -Liste von Befehlen unter Linux behandelt. Mit ein wenig Übung wird es einfacher, die Befehle zu verwenden, um unterschiedliche Funktionen zu erreichen. Hoffentlich lieferte dieser Artikel eine Oberhand bei der Verwendung der GNU -Debugger -Befehle.