Rational Purify ne parvient pas à passer à des fuites de mémoire

Donc, ma société utilise un programme délicieusement buggé appelé Rational Purify (en tant que plugin pour Microsoft Visual Developer Studio) pour gérer les fuites de mémoire. Le programme est conçu pour vous permettre de cliquer sur une fuite de mémoire après l'avoir rencontrée, puis de passer à la ligne sur laquelle la fuite se produit.

Malheureusement, Purify ne fonctionne pas correctement et Purify ne sautera pas à l'endroit où la fuite s'est produite. Elle mentionne seulement la classe et la méthode utilisées. Malheureusement, cela est parfois aussi utile que d'engager un guide pour vous aider à chasser les ours. à la forêt et vous dire qu'il y a des ours là-bas.

Est-ce que quelqu'un avec l'expérience de Purify a une idée de comment je pourrais résoudre ce problème ou avoir un bon manuel pour regarder si?

0

4 Réponses

Êtes-vous sûr d'avoir la version de débogage? Ou plutôt vous avez tous les PDB activés? Essayez WindDbg sur votre exécutable et vérifiez avec la commande! Lmi ce qui est visible.

Le code entier est-il correctement instrumenté?

Pensez aussi à utiliser autre chose comme noreferrer"> Détecteur visuel de fuite ou l'outil Microsoft LeakDiag.

0
ajouté

Purify est livré avec un script appelé ScanVSSolutionForPurifyPlus.pl qui garantit que les fichiers de votre projet ont tous les bons paramètres pour que Purify fonctionne correctement. Si vous ne l'avez pas exécuté, essayez-le.

(J'ai personnellement utilisé ScanVSSolutionForPurifyPlus.pl sur une grande solution, et cela a fonctionné comme un charme.Un avertissement: lorsque vous lui donnez le nom de votre fichier .sln , vous devrez peut-être lui donner le chemin complet.)

0
ajouté

J'ai utilisé Purify il y a environ 5 ans. C'était vraiment floconneux alors. Ils ont continué à promettre de corriger tous les bugs dans la 'prochaine version'. Nous avons abandonné à la fin. On peut seulement se demander s'ils ont utilisé leurs propres outils d'AQ sur leurs produits. Oh l'ironie...

0
ajouté

Généralement vous avez deux options, on exclut les modules DLL de l'instrumentation dans Purify, cela aide parfois. La seconde est d'obtenir BoundsChecker, cela compile beaucoup plus lentement l'instrumentation temporelle mais le niveau de détail est meilleur d'un ordre de grandeur.

Nous utilisons généralement Purify à l'enregistrement, la vérification de la santé et BoundsChecker quand nous savons qu'un bug / crash existe.

BoundsChecker has some nice features like only instrument files A.cpp & B.cpp, excluding all the rest.

Sachez qu'aucune de ces deux applications ne fonctionne sur les systèmes d'exploitation 64 bits et que BoundsChecker ne s'installe pas sur un système d'exploitation 64 bits. Le plus frustrant si vous faites le passage au développement 64 bits natif avec un port arrière de 32 bits!

0
ajouté