/ / Wie kann ich gdb den Befehlsverlauf speichern? - Debuggen, gdb

Wie kann ich gdb den Befehlsverlauf speichern? - Debuggen, gdb

Wie kann ich einrichten? gdb damit es den Befehlsverlauf speichert? Beim Start eines neuen gdb Sitzung Ich möchte die Pfeiltasten verwenden, um auf die Befehle der vorherigen Sitzungen zuzugreifen.

Antworten:

234 für die Antwort № 1

Kurze Antwort: echo "set history save on" >> ~/.gdbinit && chmod 600 ~/.gdbinit


Lange Antwort:

Die Befehlsgeschichte ist in der Handbuch GDB, 22.3 Befehlsverlauf. Erstellen Sie eine Datei $HOME/.gdbinit, ändern Sie seine Berechtigungen zu 0600und fügen Sie den folgenden Inhalt hinzu:

set history save on

Sie können die Anzahl der gespeicherten Befehle wie folgt festlegen. Der Befehl wird als beschrieben "Stellen Sie die Anzahl der Befehle ein, die gdb enthältseine Geschichte Liste. Dies ist standardmäßig der Wert der Umgebungsvariablen GDBHISTSIZE oder 256, wenn diese Variable nicht gesetzt ist. Nicht numerische Werte von GDBHISTSIZE werden ignoriert. Wenn die Größe unbegrenzt ist oder wenn GDBHISTSIZE entweder eine negative Zahl oder eine leere Zeichenfolge ist, dann ist die Anzahl der Befehle, die gdb in der Verlaufsliste behält, unbegrenzt. ".

set history size <size>

Ein verwandter Befehl ist set history remove-duplicates <count>. Der Befehl wird als beschrieben "Steuern Sie das Entfernen doppelter Verlaufseinträgein der Befehlsverlaufsliste. Wenn count ungleich Null ist, sucht gdb nach den letzten Zählungsverlaufseinträgen und entfernt den ersten Eintrag, der ein Duplikat des aktuellen Eintrags ist, der der Befehlsverlaufsliste hinzugefügt wird. Wenn count unbegrenzt ist, ist dieser Lookbehind unbegrenzt. Wenn count = 0 ist, ist die Entfernung doppelter Verlaufseinträge deaktiviert. ".

set history remove-duplicates <count>

Standardmäßig speichert gdb den Verlauf in der Datei ./.gdb_history im aktuellen Verzeichnis. Wenn Sie möchten, dass Ihr Befehlsverlauf nicht von dem Verzeichnis abhängt, in dem Sie sich befinden, schließen Sie auch Folgendes ein:

set history filename ~/.gdb_history

6 für die Antwort № 2

Wenn Sie immer noch Probleme haben, stellen Sie sicher, dass Ihre Umgebungsvariable HISTSIZE eine entsprechend hohe Zahl ist. Meine war leer, was zur Folge hatte, dass gdbs "History Size" auf 0 gesetzt wurde.

Hinzugefügt

export HISTSIZE=100000000

zu meinem ~ / .bashrc und alles ist anschwellen

Sie können Ihre gdb-Verlaufseinstellungen überprüfen, indem Sie (in gdb) "show history" ausführen:

gdb$ show history
expansion:  History expansion on command input is off.
filename:  The filename in which to record the command history is "/home/xiao/.gdb_history".
save:  Saving of the history record on exit is on.
size:  The size of the command history is 100000000.

Von dem Dokumente:

Legen Sie die Größe der Geschichte fest Größe
Geschichtsgröße unbegrenzt einstellen
Stellen Sie die Anzahl der Befehle ein, die GDB in seinem Verzeichnis behältVerlaufsliste. Dies ist standardmäßig der Wert der Umgebungsvariablen HISTSIZE oder 256, wenn diese Variable nicht gesetzt ist. Wenn die Größe nicht begrenzt ist, ist die Anzahl der Befehle, die GDB in der Verlaufsliste behält, unbegrenzt.