Comment puis-je faire gdb enregistrer l'historique des commandes?
Comment puis-je configurer gdb
de sorte qu'il enregistre l'historique des commandes? Lors du démarrage d'un nouveau gdb
session, je voudrais utiliser la flèche vers le haut des touches pour accéder aux commandes des séances précédentes.
- Remarque: Le
.gdbinit
fichier est protégé en écriture par d'autres que par vous sur linux. - Je pense que c'est une cause perdue sur les distributions comme Ubuntu. Ils permettent à quiconque de quelqu'un d'autre à la maison répertoire par défaut.
- Le
.gdbinit
fichier n'est pas traitée, si les autorisations ne sont pas configurés correctement, peu importe ce qui est la valeur par défaut ou ce que d'autres restrictions sur la maison-répertoires sont utilisés par le système.
Vous devez vous connecter pour publier un commentaire.
Réponse courte:
echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
Réponse longue:
De l'historique des commandes est couvert dans le GDB manuel, 22.3 de l'Historique des commandes. Créer un fichier
$HOME/.gdbinit
, changer ses permissions à0600
, et ajoutez le contenu suivant:Vous pouvez définir le nombre de commandes enregistrées par le suivant. La commande est décrite comme "Définir le nombre de commandes gdb conserve dans ses liste de l'historique. Par défaut, c'est la valeur de la variable d'environnement GDBHISTSIZE, ou à 256 si cette variable n'est pas définie. Non-valeurs numériques de GDBHISTSIZE sont ignorés. Si la taille est illimitée, ou si GDBHISTSIZE est soit un nombre négatif ou la chaîne vide, alors le nombre de commandes gdb tient dans la liste de l'historique est illimité".
Un commandement est
set history remove-duplicates <count>
. La commande est décrite comme "Contrôle de l'élimination des doubles entrées de l'historique de la commande de la liste de l'historique. Si nombre est non nul, gdb va regarder en arrière à la dernière compter les entrées de l'historique et de la suppression de la première entrée est un doublon de l'entrée actuelle d'être ajouté à la liste de l'historique des commandes. Si le nombre est illimité alors ce lookbehind est illimitée. Si le nombre est 0, alors la suppression de dupliquer les entrées de l'historique est désactivé".Par défaut, gdb enregistre l'historique dans le fichier ./.gdb_history dans le répertoire courant. Si vous souhaitez que votre commande histoire de ne pas dépendre du répertoire, également inclure:
n
puis j'ai flèche vers le haut de la clé, je reçois toutes les commandes qui commencent parn
.Si vous rencontrez toujours des difficultés, assurez-vous que votre HISTSIZE variable d'environnement est un suffisamment grand nombre. Le mien était vide, ce qui provoque gdb "taille de l'historique" par défaut à 0.
Ajouté
de mon ~/.bashrc et tout ce qui est de la houle
Vous pouvez vérifier votre gdb paramètres de l'historique en faisant (à l'intérieur de gdb) "afficher l'historique":
De la docs:
set history size 100
dans le .gdbinit fichier, la HISTSIZE variable d'environnement est toujours cause de la taille de l'historique à être mis à zéro. Le problème est que gdb ne comprend pas que HISTSIZE peut être illimitéeHISTSIZE
est défini, il doit être > 0, ou gdb va désactiver l'histoire.