/ / Come posso fare in modo che gdb salvi la cronologia dei comandi? - debugging, gdb

Come posso fare in modo che gdb salvi la cronologia dei comandi? - debugging, gdb

Come posso impostare gdb in modo che salvi la cronologia dei comandi? Quando si avvia un nuovo gdb sessione Mi piacerebbe usare i tasti freccia su per accedere ai comandi delle sessioni precedenti.

risposte:

234 per risposta № 1

Risposta breve: echo "set history save on" >> ~/.gdbinit && chmod 600 ~/.gdbinit


Risposta lunga:

La cronologia dei comandi è trattata in Manuale GDB, 22.3 Cronologia comandi. Crea un file $HOME/.gdbinit, modifica le sue autorizzazioni in 0600e aggiungi il seguente contenuto:

set history save on

È possibile impostare il numero di comandi passati salvati con quanto segue. Il comando è descritto come "Imposta il numero di comandi in cui gdb mantienela sua lista di storia. L'impostazione predefinita è il valore della variabile di ambiente GDBHISTSIZE o su 256 se questa variabile non è impostata. I valori non numerici di GDBHISTSIZE vengono ignorati. Se la dimensione è illimitata o se GDBHISTSIZE è un numero negativo o una stringa vuota, il numero di comandi che gdb mantiene nell'elenco della cronologia è illimitato ".

set history size <size>

Un comando correlato è set history remove-duplicates <count>. Il comando è descritto come "Controlla la rimozione di voci cronologiche duplicatenell'elenco della cronologia dei comandi. Se count è diverso da zero, gdb guarderà indietro alle voci della cronologia dell'ultimo conteggio e rimuoverà la prima voce che è un duplicato della voce corrente che viene aggiunta all'elenco della cronologia dei comandi. Se il conteggio è illimitato, questo aspetto è illimitato. Se il conteggio è 0, la rimozione delle voci cronologiche duplicate è disabilitata ".

set history remove-duplicates <count>

Per impostazione predefinita, gdb salva la cronologia nel file ./.gdb_history nella directory corrente. Se si desidera che la cronologia dei comandi non dipenda dalla directory in cui ci si trova, includere anche:

set history filename ~/.gdb_history

6 per risposta № 2

Se hai ancora problemi, assicurati che la variabile di ambiente HISTSIZE sia un numero adeguatamente alto. Il mio era vuoto, portando l'impostazione "dimensione cronologia" di gdb su 0.

aggiunto

export HISTSIZE=100000000

al mio ~ / .bashrc e tutto è perfetto

Puoi controllare le tue impostazioni della cronologia di gdb facendo (all'interno di gdb) "mostra cronologia":

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.

Dal docs:

imposta la dimensione della cronologia taglia
impostare la dimensione della cronologia illimitata
Imposta il numero di comandi che GDB mantiene nel suoelenco cronologico. L'impostazione predefinita è il valore della variabile di ambiente HISTSIZE o su 256 se questa variabile non è impostata. Se la dimensione è illimitata, il numero di comandi che GDB mantiene nell'elenco cronologico è illimitato.