Comment puis-je configurer gdb
pour qu'il enregistre l'historique des commandes? Lors du démarrage d'une nouvelle gdb
session, j'aimerais utiliser les touches fléchées vers le haut pour accéder aux commandes des sessions précédentes.
195
.gdbinit
fichier doit être protégé en écriture par d'autres personnes que vous sur Linux..gdbinit
fichier n'est pas traité si les autorisations ne sont pas configurées correctement, quelle que soit la valeur par défaut ou quelles autres limitations sur les répertoires personnels sont utilisées par le système..gdbinit
fichier et que ce n'est pas le cas, cela signifie que votreumask
n'est pas défini sur une valeur saine comme022
. Ensuite, dans un système multi-utilisateur, vous avez des problèmes plus importants que votre.gdbinit
fichier.Réponses:
Réponse courte:
echo 'set history save on' >> ~/.gdbinit && chmod 600 ~/.gdbinit
Longue réponse:
L'historique des commandes est traité dans le manuel GDB, 22.3 Historique des commandes . Créez un fichier
$HOME/.gdbinit
, modifiez ses autorisations en0600
et ajoutez le contenu suivant:Vous pouvez définir le nombre de commandes passées enregistrées avec les éléments suivants. La commande est décrite comme "Définissez 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, le nombre de commandes que gdb conserve dans la liste historique est illimité " .
Une commande connexe est
set history remove-duplicates <count>
. La commande est décrite comme "Contrôler la suppression des entrées d'historique en double dans la liste de l'historique des commandes. Si le nombre est différent de zéro, gdb reviendra sur les dernières entrées d'historique de comptage et supprimera la première entrée qui est un double de l'entrée en cours ajouté à la liste de l'historique des commandes. Si le nombre est illimité, ce retard est illimité. Si le nombre est 0, la suppression des entrées d'historique en double est désactivée " .Par défaut, gdb enregistre l'historique dans le fichier ./.gdb_history dans le répertoire courant . Si vous souhaitez que votre historique de commandes ne dépende pas du répertoire dans lequel vous vous trouvez, incluez également:
la source
n
puis je touche flèche vers le haut, j'obtiens toutes les commandes précédentes qui commencent parn
.Si vous rencontrez toujours des problèmes, assurez-vous que votre variable d'environnement HISTSIZE est suffisamment élevée. Le mien était vide, ce qui faisait que le paramètre "taille d'historique" de gdb était réglé par défaut sur 0.
Ajoutée
à mon ~ / .bashrc et tout est gonflé
Vous pouvez vérifier vos paramètres d'historique gdb en faisant (à l'intérieur de gdb) "afficher l'historique":
De la documentation :
la source
set history size 100
dans le fichier .gdbinit, la variable d'environnement HISTSIZE provoquait toujours la mise à zéro de la taille de l'historique. Le problème est que gdb ne comprend pas que HISTSIZE peut être défini sur illimitéHISTSIZE
est défini, il doit être> 0 , sinon gdb désactivera l'historique.