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.

Foi útil?

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!)

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top