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 № 1Risposta 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 0600
e 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.