2009-09-30 8 views
0

Lorsque j'effectue une session de débogage avec gdb, elle imprime certaines informations pour moi. Comment puis-je arrêter cela. Voici un exemple:Suppression de la sortie par défaut de gdb lorsque vous passez d'une instruction à l'autre

Breakpoint 1, 0x100000d4 in ??() 
(gdb) si 
0x100000d8 in ??() 
(gdb) si 
0x100000dc in ??() 
(gdb) 

Ici, je veux supprimer les lignes qui disent 0x100000d8 in ??(). Je ne trouve rien dans la documentation sur la suppression de cette sortie. Des idées?

Merci Tim

Répondre

1

vous pouvez supprimer l'impression du 0x100000d8 avec set print address off. en regardant le source (recherche de static void print_frame (...)), je ne pense pas que la suppression du reste possible.

1

Une solution peu mystérieuse consiste à définir une fonction qui active la "journalisation de la redirection", puis d'exécuter l'instruction et enfin de désactiver la journalisation. Exemple:

define stepix 
    set logging redirect on 
    set logging file /tmp/whatever 
    set logging on 
    si 
    set logging off 
end 

mais cette solution va supprimer toute sortie, non seulement le 0x100000d8 in ??(). Peut ne pas correspondre à votre besoin/goût. Je ne pense pas que la suppression de cette sortie est possible.

+2

... vous pouvez bien sûr 'définir le fichier de journalisation/dev/null' afin qu'il n'envoie rien sur le disque, non plus. –

0

Nous sommes maintenant 2016, et j'ai une solution moche pour ceux qui veulent désactiver de manière sélective une sortie de commande. Je ne sais pas comment il devrait être récent pour gdb.

Au lieu de

(gdb) stepi 

essayer cette

(gdb) python gdb.execute("stepi", to_string=True) 

Il se sent comme un élément de base, s'il vous plaît partager si vous avez une meilleure façon, en particulier un qui ne repose pas sur python. Je voudrais vraiment éviter le coup de performance (probable) lors de l'exécution du stepi en boucle.

Questions connexes