233 votes

Comment faire pour que gdb enregistre l'historique des commandes ?

Comment puis-je mettre en place gdb pour qu'il enregistre l'historique des commandes ? Lorsque vous démarrez une nouvelle gdb j'aimerais utiliser les touches de déplacement vers le haut pour accéder aux commandes des sessions précédentes.

330voto

Frank Points 16055

Réponse courte :

mkdir -p ~/.config/gdb
echo 'set history save on' >> ~/.config/gdb/gdbinit

Longue réponse :

L'historique des commandes est traité dans le Manuel de GDB, 22.3 Historique des commandes . Créer un fichier $HOME/.config/gdb/gdbinit et ajoutez la ligne suivante :

set history save on

Vous pouvez définir le nombre de commandes passées sauvegardées à l'aide de la commande suivante. La commande est décrite comme suit "Définit le nombre de commandes que gdb conserve dans sa liste d'historique. La valeur par défaut est la valeur de la variable d'environnement GDBHISTSIZE, ou 256 si cette variable n'est pas définie. Les valeurs non numériques de GDBHISTSIZE sont ignorées. Si la taille est illimitée ou si GDBHISTSIZE est soit un nombre négatif, soit une chaîne vide, alors le nombre de commandes que gdb conserve dans la liste d'historique est illimité". .

set history size <size>

Une commande connexe est set history remove-duplicates <count> . La commande est décrite comme suit "Contrôle la suppression des entrées d'historique dupliquées dans la liste d'historique des commandes. Si count est différent de zéro, gdb examinera le dernier nombre d'entrées de l'historique et supprimera la première entrée qui est un doublon de l'entrée actuelle ajoutée à la liste de l'historique des commandes. Si le nombre est illimité, ce retour en arrière est illimité. Si count est égal à 0, alors la suppression des entrées d'historique en double est désactivée". .

set history remove-duplicates <count>

Par défaut, gdb sauvegarde l'historique dans le fichier ./.gdb_history dans le répertoire actuel . Si vous voulez que l'historique de vos commandes ne dépende pas du répertoire dans lequel vous vous trouvez, incluez également :

set history filename ~/.gdb_history

9voto

Xiao Points 125

Si vous avez toujours des problèmes, assurez-vous que votre variable d'environnement HISTSIZE est un nombre suffisamment élevé. La mienne était vide, ce qui fait que le paramètre "taille de l'historique" de gdb est par défaut à 0.

Ajouté

export HISTSIZE=100000000

à mon ~/.bashrc et tout va bien.

Vous pouvez vérifier vos paramètres d'historique de gdb en faisant (dans gdb) "show history" :

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.

De la docs :

définir la taille de l'historique taille
définir une taille d'historique illimitée
Définit le nombre de commandes que GDB conserve dans sa liste d'historique. Par défaut, il s'agit de la valeur de la variable d'environnement HISTSIZE, ou de 256 si cette variable n'est pas définie. Si la taille est illimitée, le nombre de commandes que GDB conserve dans la liste d'historique est illimité.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X