Pregunta

Por eso, mi empresa utiliza un programa deliciosamente defectuoso llamado Rational Purify (como complemento de Microsoft Visual Developer Studio) para gestionar las pérdidas de memoria.El programa está diseñado para permitirle hacer clic en una pérdida de memoria después de haberla encontrado y luego saltar a la línea en la que se produce la pérdida.

Desafortunadamente, Purify no funciona correctamente y Purify no saltará al lugar donde ocurrió la fuga; solo menciona la clase y el método en el que ocurre la fuga.Desafortunadamente, a veces esto es tan útil como contratar a un guía para que le ayude a cazar osos y pedirle que señale el bosque y le diga que hay osos allí.

¿Alguien con experiencia en Purify tiene alguna idea de cómo puedo solucionar este problema o tiene un buen manual para consultar?

¿Fue útil?

Solución

Generalmente tiene dos opciones, una excluye los módulos DLL de la instrumentación en Purify, esto ayuda algunas veces.El segundo es obtener BoundsChecker, esto compila la instrumentación en tiempo mucho más lento pero el nivel de detalle es un orden de magnitud mejor.

Generalmente usamos Purify en el check-in, verificación de cordura y BoundsChecker cuando sabemos que existe un error o falla.

BoundsChecker tiene algunas características interesantes, como solo archivos de instrumentos A.cpp y B.cpp, excluyendo el resto.

Tenga en cuenta que ninguna de estas dos aplicaciones funciona en sistemas operativos de 64 bits y BoundsChecker no se instalará en sistemas operativos de 64 bits.¡Lo más frustrante es cambiar al desarrollo nativo de 64 bits con un puerto posterior de 32 bits!

Otros consejos

Purify es como una navaja suiza.Si sabe cómo usarlo, obtendrá algunos resultados, no los mejores, pero sí resultados.Si no lo hace, se bloqueará, porque es sólo otro programa que se ejecuta en Windows.

Al final necesitarás mucha paciencia, reconstrucciones y un poco de suerte.

Purify viene con un script llamado ScanVSSolutionForPurifyPlus.pl que garantizará que los archivos de su proyecto tengan todas las configuraciones correctas para que Purify funcione correctamente.Si no lo has ejecutado, pruébalo.

(Personalmente utilicé ScanVSSolutionForPurifyPlus.pl en una solución grande y funcionó de maravilla.Una advertencia:cuando le das el nombre de tu .sln archivo, es posible que deba darle la ruta completa).

¿Estás seguro de que tienes una versión de depuración?¿O más bien tienes todos los PDB habilitados?Pruebe WindDbg en su ejecutable y verifique con el comando !lmi qué es visible.

¿Está todo el código instrumentado correctamente?

También considere usar algo más como Detector visual de fugas gratuito o la herramienta LeakDiag de Microsoft.

Usé Purify hace unos 5 años.Fue realmente raro entonces.Siguieron prometiendo corregir todos los errores en la "próxima versión".Al final lo abandonamos.Uno sólo puede preguntarse si utilizaron sus propias herramientas de control de calidad en sus productos.Oh, la ironía...

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top