Pregunta

Estoy tratando de utilizar Purificar 6 para analizar una corrupción de memoria en uno de nuestros ejecutables construidos con VC ++ 2003 (7,1).

Cuando el binario instrumento con el comando:

purify /Replace=yes /Run=no myprog.exe

La instrumentación aborta decirme el ejecutable se vincula de forma incremental. Desconcertado, he comprobado las opciones de compilación, pero /INCREMENTAL:NO estaba allí. Para estar seguro, lo reconstruí y la opción fue aprobada correctamente en tiempo de enlace.

¿Hay una manera de saber si un archivo ejecutable se vincula de forma incremental o no?

Yo tenía un vistazo a lo que dice dumpbin /HEADERS pero no vi nada relevante.

Gracias.

¿Fue útil?

Solución

Opción 1:

c: ...> dumpbin / Resumen whatever.exe

Busque una sección de ".textbss".

No estoy seguro de que esto es 100% fiable, pero en mi experiencia el enlazador siempre añade esta sección cuando se hace la vinculación incremental.

Opción 2:

Busque un archivo ".ilk" junto al ejecutable. Visual Studio parece ser bueno sobre la limpieza de éstos cuando no se usan, así que deshabilitar la vinculación incremental y la construcción (ni siquiera una "reconstrucción") debe quitarlo.

Opción 3:

Habilitar registro de acumulación (Herramientas / Opciones / Proyectos) y busque "/ Incremental" o "/ incremental: NO". Buildlog.html en el archivo que genera

Opción 4:

analizar el archivo .vcproj. (Ick!)

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