Question

Mon entreprise utilise donc un programme délicieusement bogué 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 fonctionne mal et Purify ne sautera pas à l'endroit où la fuite s'est produite, il mentionne uniquement la classe et la méthode dans lesquelles la fuite se produit.Malheureusement, cela est parfois aussi utile que d'embaucher un guide pour vous aider à chasser l'ours et de lui demander de vous montrer la forêt et de vous dire qu'il y a des ours là-bas.

Quelqu'un ayant de l'expérience avec Purify a-t-il une idée de la façon dont je pourrais résoudre ce problème ou a-t-il un bon manuel à consulter ?

Était-ce utile?

La solution

Généralement, vous avez deux options, l'une exclut les modules DLL de l'instrumentation dans Purify, cela aide parfois.Deuxièmement, obtenez BoundsChecker, cela compile le temps d'instrumentation beaucoup plus lent mais le niveau de détail est d'un ordre de grandeur meilleur.

Nous utilisons généralement Purify lors de l'enregistrement, de la vérification de l'intégrité et de BoundsChecker lorsque nous savons qu'un bug/un crash existe.

BoundsChecker a quelques fonctionnalités intéressantes comme uniquement les fichiers d'instruments A.cpp et B.cpp, à l'exclusion de tout le reste.

Sachez qu'aucune de ces deux applications ne fonctionne sur les systèmes d'exploitation 64 bits et que BoundsChecker ne s'installera pas sur les systèmes d'exploitation 64 bits.C'est très frustrant si vous passez au développement natif 64 bits avec un port arrière 32 bits !

Autres conseils

Purify est comme un couteau suisse.Si vous savez comment l'utiliser, vous obtiendrez des résultats, pas les meilleurs mais quand même des résultats.Si vous ne le faites pas, il plantera, car il ne s'agit que d'un autre programme fonctionnant sous Windows.

Au final, il vous faudra beaucoup de patience, de reconstruction et un peu de chance.

Purify est livré avec un script appelé ScanVSSolutionForPurifyPlus.pl qui garantira que vos fichiers de projet disposent de tous les paramètres appropriés 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é à merveille.Une mise en garde :quand tu lui donnes le nom de ton .sln fichier, vous devrez peut-être lui donner le chemin d’accès complet.)

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

L’ensemble du code est-il correctement instrumenté ?

Pensez également à utiliser autre chose comme Détecteur de fuite visuel gratuit ou l'outil LeakDiag de Microsoft.

J'ai utilisé Purify il y a environ 5 ans.C'était vraiment floconneux à l'époque.Ils ont continué à promettre de corriger tous les bugs dans la « prochaine version ».Nous avons finalement abandonné.On ne peut que se demander s’ils ont utilisé leurs propres outils d’assurance qualité sur leurs produits.Oh l'ironie...

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top