2010-09-15 5 views
0

Je veux déboguer un "gros" code C, et utiliser valgrind, en particulier l'outil memcheck. La sortie est très longue, en raison de la taille du programme, et je veux seulement me concentrer sur certaines fonctions et sous-fonctions relatives du programme. Est-il possible dans valgrind d'analyser certaines fonctions et sous-fonctions (jusqu'à un certain niveau de profondeur)?Analyser avec valgrind seulement quelques fonctions et sous-fonctions

Merci

+0

que Outil Valgrind utilisez-vous? Memcheck? Callgrind? –

+0

memcheck, désolé – flow

Répondre

1

Valgrind doit superviser le processus dès le départ; il n'est pas possible de l'attacher au processus déjà en cours d'exécution (ou, de manière équivalente, d'ignorer le processus jusqu'à un certain point dans l'exécution, puis de commencer à émuler/vérifier).

L'inverse n'est pas vrai - vous pouvez "détacher" valgrind après un certain nombre d'instructions; mais je devine que ce n'est pas ce que tu veux.

S'il vous plaît noter que:

  • la « sortie est très long » est une mauvaise excuse - les erreurs Valgrind sont généralement vrais positifs (sauf si vous utilisez un code optimisé, auquel cas: ne pas faire que), et devrait vraiment être adressée et
  • vous peut se concentrer sur les problèmes plus graves (corruption du tas) avant d'aborder l'utilisation des valeurs non initialisées, en utilisant --undef-value-errors=no
+0

Je seconde que la sortie ne devrait pas être longue. En fait, je ne me souviens pas d'avoir déjà vu un faux positif, même avec un code optimisé. Ne pas optimiser peut également masquer certaines erreurs (notamment les retours manquants), il est donc important de tester * both *. –

Questions connexes