Wie kann ich wissen, ob eine ausführbare schrittweise verknüpft wurde oder nicht?
-
11-09-2019 - |
Frage
Ich versuche, Entschlacken zu verwenden 6 einen Speicherfehler in einem unserem Executables mit VC ++ 2003 (7.1).
gebaut analysierenWenn ich Instrument der Binärdatei mit dem Befehl:
purify /Replace=yes /Run=no myprog.exe
Die Instrumentierung bricht mir das ausführbare erzählt wurde schrittweise verknüpft. Verwirrt, überprüfte ich die Build-Optionen, aber /INCREMENTAL:NO
da war. Um sicher zu gehen, wieder aufgebaut ich es und die Option korrekt zu Verbindungszeitpunkt übergeben.
Gibt es eine Möglichkeit zu wissen, ob eine ausführbare inkrementell verknüpft wurde oder nicht?
hatte ich einen Blick auf, was dumpbin /HEADERS
sagt aber nichts relevant sehen.
Danke.
Lösung
Option 1:
c: ...> dumpbin / Zusammenfassung whatever.exe
Suchen Sie nach einem ".textbss" Abschnitt.
Ich bin mir nicht sicher, dass diese zu 100% zuverlässig ist, aber nach meiner Erfahrung fügt der Linker immer diesen Abschnitt, wenn die inkrementelle Verknüpfen zu tun.
Option 2:
Suchen Sie nach einer „ILK“ Datei neben der ausführbaren Datei. Visual Studio scheint über die Reinigung dieses bis gut zu sein, wenn sie nicht gewohnt sind, so deaktivieren inkrementelles Verknüpfen und Gebäude (nicht einmal ein „Wiederaufbau“) sollte es entfernen.
Option 3:
Aktivieren Build Protokollierung (Extras / Optionen / Projekte) und suchen Sie nach "/ Incremental" oder "/ INCREMENTAL: NO". In der buildlog.html-Datei, die es erzeugt
Option 4:
Analysieren Sie die VCPROJ-Datei. (Ick!)