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.
Réponses
Trop de publicités?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
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é.