J'ai un ensemble de tests d'acceptation qui fonctionnent tous les soirs. J'aimerais utiliser Valgrind pour vérifier les fuites de mémoire dans mon code automatiquement sous forme de sécurité supplémentaire pour vérifier manuellement des fuites. Mise à jour de mes scripts Pour exécuter mes processus sous Valgrind est trivial, cependant, chaque test démarre et arrête un certain nombre de processus et il y a environ 15 000 cas de test, donc je finirai avec des milliers de rapports individuels. p>
Y a-t-il un outil capable de fusionner ces rapports? J'ai vu Valkyrie, mais selon les docs, ils ne soutiennent pas Valgrind 3.5 P>
3 Réponses :
Si votre code est principalement propre, vous pouvez simplement conserver les cas d'erreur. P>
Si vous allez à droite un outil pour combiner les sorties, le format de sortie Valgrind XML pourrait être la bonne chose à commencer. Au moins, l'analyse ne devrait pas être trop difficile. Vous pouvez également émettre le journal de Valgrind à un fichier différent pour le séparer de la sortie des programmes. De plus, vous pouvez obtenir Valgrind pour donner une erreur lorsqu'il détecte une fuite de mémoire avec Vous devrez toujours décider de ce qui compte comme la même fuite de mémoire, lors de la comparaison des fuites. P> - Error-sitcode = code>. P>.
Étant donné qu'il peut y avoir des milliers de rapports produits, il peut être difficile de trouver les cas d'erreur. Il y aura beaucoup de cas d'erreur aussi bien que je sais qu'il y a de bonnes fuites là-bas. Il y aura aussi beaucoup de doublons que j'espérais que tout outil de fusion se combinerait dans un seul rapport principal pour moi.
D'où mon "si ton code est la déclaration essentiellement propre". La fusion serait délicate dans tous les cas, comme il serait nécessaire de décider de la quantité de trace de la traçabilité lors de la comparaison.
Un moyen de résoudre votre problème devrait être d'ajouter Puis, si les rapports ont écrit quelque chose, il est peut-être que vous devez résoudre les fuites de mémoire avant de continuer. P>
- Gen-Suppressions = All CODE> Option et concatez toutes les erreurs ignorées dans votre Fichiers de suppressions . Vous devez trier les vraies fuites et fausses fuites manuellement, mais une fois que cela est fait, Valgrind n'imprimera que de vraies fuites. P>
- une option silencieuse code> est nécessaire: exécutez silencieusement et seulement les messages d'erreur d'impression. Utile si vous exécutez des tests de régression ou si vous avez d'autres machines de test automatisées. Em> p>
Les nouvelles versions de Valkyrie (le compagnon d'interface graphique à Valgrind) ont ce que vous recherchez.
$ man valkyrie NAME valkyrie - graphical front-end to the Valgrind suite of tools for debugging and profiling Linux executables SYNOPSIS valkyrie [valkyrie-opts] [valgrind-opts] [prog-and-args] <snip> --merge <loglist> Merge multiple logfiles, discarding duplicate errors
Malheureusement, vk_logmerge n'existe plus dans Ubuntu / Debian et la source amont
Même problème. Conclusion Pour l'instant: Écrivez un script :) Je suis intéressé si vous avez trouvé un tel outil ...