Gdb imprimer dans un fichier au lieu de stdout
Je cours gdb et je veux examiner l'un de ces malheureux objets de Dieu. Il faut beaucoup de pages (et j'ai un moniteur 24" tourné sur le côté! pour voir l'ensemble de la chose. Pour faciliter l'utilisation, je voudrais que gdb imprime l'objet dans un fichier au lieu de l'écran afin que je puisse l'ouvrir dans vi et me déplacer facilement. Avec toute la polyvalence de gdb, il doit y avoir un moyen de le faire, non?
5 réponses
, Vous devez activer la journalisation.
(gdb) set logging on
Vous pouvez lui dire quel fichier utiliser.
(gdb) set logging file my_god_object.log
Et vous pouvez examiner la configuration de journalisation actuelle.
(gdb) show logging
J'ai trouvé que vous pouvez rediriger la sortie de gdb vers un fichier via la commande run
:
(gdb) run > outfile
Extension de la réponse de @qubodup
gdb core.3599 -ex bt -ex quit |& tee backtrace.log
Le commutateur -ex
exécute une commande gdb. Donc, ce qui précède charge le fichier de base, exécute la commande bt
, puis la commande quit
. La sortie est écrite dans backtrace.log
et également sur l'écran.
Une autre invocation gdb utile (donnant stacktrace avec des variables locales de tous les threads) est
gdb core.3599 -ex 'thread apply all bt full' -ex quit
Vous pouvez enregistrer la sortie des commandes gdb dans un fichier. Il existe plusieurs commandes pour contrôler la journalisation de gdb.
set logging on
Activer la journalisation.
set logging off
Désactiver la journalisation.
set logging file file
Change le nom du fichier journal actuel. Le fichier journal par défaut est gdb.txt.
set logging overwrite [on|off]
Par défaut, gdb sera ajouté au fichier journal. Définissez overwrite si vous souhaitez définir logging on pour écraser le fichier journal à la place.
set logging redirect [on|off]
Par défaut, la sortie gdb ira à la fois au terminal et au logfile. Définissez la redirection si vous voulez que la sortie aille uniquement vers le fichier journal.
show logging
Affiche les valeurs actuelles des paramètres de journalisation.
Une méthode simple pour enregistrer gdb dans un fichier tout en voyant la sortie (ce qui facilite l'écriture des commandes) consiste à utiliser tee
:
gdb command |& tee gdb.log