it-swarm-pt.tech

Como uso arquivos PDB

Ouvi dizer que o uso de arquivos PDB pode ajudar a diagnosticar onde ocorreu uma falha.
Meu básico entendimento é que você fornece ao Visual studio o arquivo de origem, o arquivo pdb e as informações de falha (do Dr. Watson?)
Alguém pode explicar como tudo funciona/o que está envolvido? (Obrigado!)

45
hamishmcn

Arquivos PDB são gerados quando você cria seu projeto. Eles contêm informações relacionadas aos binários criados que o Visual Studio pode interpretar.

Quando um programa falha e gera um relatório de falha, o Visual Studio pode pegar esse relatório e vinculá-lo ao código-fonte por meio do arquivo PDB do aplicativo. Os arquivos PDB devem ser criados a partir do mesmo binário que gerou o relatório de falha!

Existem alguns problemas que encontramos ao longo do tempo.

  • A máquina que está depurando o relatório de falha precisa ter a fonte no mesmo caminho da máquina que construiu o binário.
  • As compilações de versão geralmente são otimizadas na medida em que você não pode exibir o estado das variáveis ​​de membro do objeto

Se alguém souber derrotar o primeiro, ficaria grato por alguma contribuição.

34
roo

Os arquivos PDB mapeiam o MSIL de um assembly para as linhas de origem originais. Isso significa que, se você colocar o PDB que foi compilado com o Assembly no mesmo diretório que o Assembly, seus rastreamentos de pilha de exceção terão os nomes e as linhas das posições nos arquivos de origem originais. Sem o arquivo PDB, você verá apenas o nome da classe e do método para cada nível do rastreamento de pilha.

38
Omer van Kloeten

Você deve configurar um servidor de símbolos e indexar os arquivos PDB no seu sistema de controle de código-fonte. Recentemente, passei por esse processo para o nosso produto e ele funciona muito bem. Você não precisa se preocupar em disponibilizar arquivos PDB com os binários, nem em como obter o código-fonte apropriado ao depurar arquivos de despejo.

Livro de John Robbins: http://www.Amazon.com/Debugging-Microsoft-NET-2-0-Applications/dp/0735622027/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1222366012&sr=8-1

Procure aqui um exemplo de código para gerar minidumps (que não precisam ser restritos à análise pós-falha - você pode gerá-los a qualquer momento do código sem travar): http: //www.codeproject .com/KB/debug/postmortemdebug_standalone1.aspx

12
lesscode