Pergunta

Eu tenho um projeto que é o projeto C ++ Win32. Eu encontrei um problema que algum símbolo pode ser reconhecido pelo windbg mas alguns não. Eu não sei porquê. As características são:

1) são ambos C ++ método

2) tanto a função estão em um arquivo .cpp

3) as duas funções são muito próximos no arquivo de origem e nenhum de eles são delimitados por um #ifdef

4) Eu tenho usado dbh.exe para verificar o símbolo, o símbolo em falta no windbg também não está no arquivo PDB.

Eu estou supondo que se o símbolo em falta pode, devido à herança da classe? Por favor, sugerem, obrigado! Bin

Foi útil?

Solução

Se você não usar uma função, desde que ele não é uma função virtual, que pode ser deadstripped pelo vinculador. objetos de dados globais não utilizados podem ser deadstripped também.

Outras dicas

é a função cada vez chamado?

Pode ajudar a dar mais alguns detalhes sobre por que você pensa que é "devido à herança da classe"

Parece que o código-fonte pode ser incompatível com os arquivos PDB.

Talvez a função foi adicionada após o arquivo PDB foi gerado?

Você pode validar isso:

  1. Adicionar um ponto de ruptura a uma linha de código que você sabe que vai ser executado.
  2. Passo através do código e garantir que o depurador não parar em todas as linhas em branco de código (isto implicaria uma incompatibilidade entre o código eo arquivo PDB).

A primeira coisa que eu sugiro é para reconstruir o código fonte para ver se isso resolve o problema.

Se isso não funciona, por favor fornecer mais informações para nos permitir ajudar a diagnosticar este projecto.

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