c++ mfc bounds-checker purify

c++ - Herramientas de 64 bits como BoundsChecker & Purify



mfc bounds-checker (10)

Utilicé la verificación de límites y otras herramientas de análisis dinámico, y si bien las arquitecturas son diferentes, es el código que está verificando; en teoría, podría ejecutar los límites comprobando en cualquier back-end y el resultado sería el mismo, el código sale fuera. sus límites o no.

Las únicas complicaciones son abordar más de 4 GB de espacio de memoria, tratar con fragmentos de código que no se pueden compilar de forma cruzada con una arquitectura de 32 bits (archivos de objetos de 64 bits para los que no se tiene origen, etc.) y una migración general de 64 bits problemas (código específico de la plataforma, como comprobar 0xFFFFFFFF en lugar de -1)

¿Qué otros problemas se te ocurren al hacer límites verificando en tu programa? ¿No puede compilar una versión de 32 bits?

No es la solución ideal, sin duda, y uno siempre debe verificar el código que van a ejecutar, pero en este caso es posible que no tenga otra opción, a menos que desee hacer su propia comprobación de límites (que es una buena idea en cualquier caso...).

-Adán

Durante muchos años he usado dos excelentes herramientas, BoundsChecker & Purify , pero los desarrolladores de estas aplicaciones me han defraudado, ya no se esfuerzan por mantenerlas o desarrollarlas. Tenemos cuentas corporativas con ambas compañías, y ambas me dicen que no tienen intención de producir versiones para admitir aplicaciones de 64 bits.

¿Alguien puede recomendar alternativas de fuente abierta o comerciales que admitan aplicaciones C ++ / MFC nativas de 64 bits?


Parasoft tiene una herramienta llamada Insure ++ (enlace: http://www.parasoft.com/jsp/products/quick_facts.jsp?product=Insure ) que dice que hará eso.

Utilicé Insure ++ en aplicaciones de 32 bits y 64 bits en Linux y funcionó bien. A veces se confundía cuando intentaba analizar el código de plantilla / stl y se caía.

Esa url dice que funciona en ventanas de 32 y 64 bits, ¡buena suerte!


Entiendo que BC 9.0 admitirá WOW64


La herramienta Viva64 ( http://www.viva64.com/viva64-tool/ ) proporciona la detección de errores típicos de las aplicaciones de Windows de 64 bits. Viva64 es un analizador estático parecido a una pelusa de código C / C ++. Viva64 se integra en el entorno Visual Studio 2005/2008 y proporciona una interfaz fácil de usar para probar sus proyectos de software.


BoundsChecker 9.01 ahora es compatible con VC2008 y x64 bits, por fin.


Asegúrese de que ++ trabaje solo si instrumenta su código. Una vez lo intenté. Tardó unos 5 minutos en compilar unas 1000 líneas de código. Como el proyecto que necesitaba compilar era enorme, rápidamente determiné que Insure ++ no iba a funcionar.

Por no mencionar sus informes, o salida de Insure ++ es bastante arcaico. también la penalización de rendimiento en tiempo de ejecución fue atroz.

Nota sobre boundschecker de numega / compuware / other_new_company: No lo compre. Solo se trata de perfiles de aplicaciones de 32 bits. NO hace aplicaciones de 64 bits. Sin embargo, se puede instalar en un sistema operativo de 64 bits. Dejé de usarlo hace años en nuestra aplicación. Lo uso en CppUnit Tests aunque ... a veces.

En general estoy completamente disgustado con todas las herramientas nativas de pérdida de memoria que hay. No todos funcionan, o simplemente bloquean su aplicación al apagar.


Intel (R) Parallel Inspector ( http://software.intel.com/en-us/intel-parallel-inspector/ ) es una herramienta de complemento de enhebrado y comprobación de memoria para Microsoft * Visual Studio; es compatible con 32 bits y 64 bits C / C ++ en Windows. Es una aplicación comercial con una evaluación gratuita de 30 días.

Divulgación: trabajo para Intel.


FYI: BoundsChecker 10.0 se ejecuta en Windows XP a través de Windows 7, en versiones de 32 y 64 bits. Es compatible con las aplicaciones WOW64 y también es compatible con Visual Studio 2010. De hecho, lanzamos el soporte VS2010 dentro de los 30 días posteriores a la publicación de Microsoft.

Estamos alcanzando nuestro retraso. Llegamos muy tarde a la compatibilidad con VS2005 y VS2008 (con BC 9.0, otoño de 2008), pero hubo una variedad de razones por las que esto sucedió. El milagro fue que lo sacamos del todo.

BoundsChecker 10.5, cuando salga, debería tener algunos extras más. Manténganse al tanto.

Divulgación: trabajo para MicroFocus.



Desde el soporte de IBM PurifyPlus para las versiones de 64 bits de Microsoft Windows :

Technote (preguntas frecuentes)

Pregunta

¿IBM Rational PurifyPlus es compatible con las versiones de 64 bits de Microsoft Windows?

Porque

Las versiones de 64 bits de Microsoft Windows se están volviendo populares.

Responder

A partir de la versión 7.0.1 iFix 003, PurifyPlus admite la prueba de aplicaciones de 64 bits en Windows.

Se puede encontrar más información sobre iFix 003 en la siguiente nota técnica IBM Rational PurifyPlus para Windows v7.0.1.0-003

Instalas esta versión de Purify y obtienes una entrada " Purify (para aplicaciones de 64 bits) " en tu menú de inicio.