Como posso saber se um executável foi incrementalmente ligada ou não?
-
11-09-2019 - |
Pergunta
Eu estou tentando usar Purify 6 para analisar uma corrupção de memória em um dos nossos executáveis ??construídos com VC ++ 2003 (7,1).
Quando eu instrumento o binário com o comando:
purify /Replace=yes /Run=no myprog.exe
Os aborts instrumentação me dizendo o executável foi progressivamente ligados. Intrigado, eu verifiquei as opções de compilação, mas /INCREMENTAL:NO
estava lá. Para ter certeza, eu reconstruí-lo ea opção foi passada corretamente em tempo de link.
Existe uma maneira de saber se um executável foi incrementalmente ligada ou não?
Eu tive uma olhada no que dumpbin /HEADERS
diz, mas não vi nada relevante.
Graças.
Solução
Opção 1:
c: ...> dumpbin / summary whatever.exe
Procure a seção ".textbss".
Eu não tenho certeza que isso é 100% confiável, mas em minha experiência, o vinculador sempre acrescenta esta secção ao fazer vinculação incremental.
Opção 2:
Procure um arquivo ".ilk" ao lado do executável. Visual Studio parece ser bom em limpar estes até quando não está acostumado, então desabilitar o vínculo incremental e construção (nem mesmo um "reconstruir") deve removê-lo.
Opção 3:
Habilitar o log de construção (Ferramentas / Opções / Projects) e procure "/ INCREMENTAL" ou "/ INCREMENTAL: NO". No arquivo buildlog.html que gera
Opção 4:
analisar o arquivo .vcproj. (Nojento!)