Domanda

Sto cercando di utilizzare Purify 6 per analizzare una corruzione della memoria in uno dei nostri eseguibili costruiti con VC ++ 2003 (7.1).

Quando ho strumento il file binario con il comando:

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

La strumentazione interrompe dicendomi l'eseguibile è stato incrementale legato. Perplesso, ho controllato le opzioni di generazione, ma ci /INCREMENTAL:NO stato. A dire il vero, ho ricostruito e l'opzione è stata correttamente passato in fase di collegamento.

C'è un modo per sapere se un file eseguibile è stato incrementale legato o no?

Ho dato un'occhiata a ciò che dice dumpbin /HEADERS ma non ho visto nulla di rilevante.

Grazie.

È stato utile?

Soluzione

Opzione 1:

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

Se vuoi inserire una sezione ".textbss".

Non sono sicuro che questo è affidabile al 100%, ma nella mia esperienza il linker aggiunge sempre questa sezione quando si fa il collegamento incrementale.

Opzione 2:

Cercare un file ".ilk" accanto al file eseguibile. Visual Studio sembra essere buono sulla pulizia questi fino quando non sono utilizzati, in modo invalidante collegamento incrementale e la costruzione (nemmeno una "ricostruzione") dovrebbe rimuoverlo.

Opzione 3:

Abilita costruire la registrazione (Strumenti / Opzioni / Progetti) e cercare "incrementale /" o "/ INCREMENTALE: NO". Nel file buildlog.html che genera

Opzione 4:

analizzare il file .vcproj. (Ick!)

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top