logo
Contato | Sobre...        
rebarba rebarba

Rodrigo Strauss :: Blog


Fazendo o WinDbg entender o arquivo PDB compilado pelo Visual C++ em DEBUG

Eu já apanhei bastante com erros do tipo "type information missing" no Windbg, tentando fazer debug de executáveis ou DLLs compilados em versão DEBUG com o VC6. O PDB gerado pelo VC6 - quando você compila em DEBUG - não é compatível com o WinDbg. Depois de várias tentativas e algumas perguntas no grupo de WinDbg gringo, consegui encontrar uma solução definitiva. Segue a receita de bolo:

  • Primeiro você precisa configurar o VC para gerar o PDB. Meu artigo sobre WinDbg explica como fazer isso;
  • Coloque a configuração "Debug Info" exatamente como manda o artigo. Ao invés de "Program Database for Edit and Continue", a configuração deve ser "Program Database". O Edit and Continue é um dos motivos do PDB não ser entendido pelo WinDbg;
  • Entre na aba "Link" do "Project Settings" e adicione "/pdbtype:con /EDITANDCONTINUE:no" na parte de "Project Options", logo depois de todos os outros flags que já estão configurados. Isso vai garantir que o "Edit And Continue" estará desabilitado e que todas as informações de debug estarão dentro do PDB gerado.

Pronto. Agora é só dar um rebuild no projeto, o PDB gerado será compatível com o WinDbg.


Em 18/11/2005 15:00, por Rodrigo Strauss


  
 
 
Comentários
Wanderley Caloni Junior | website | em 18/11/2005 | #
Isso é muuuuuuuuuito bom. Só não ganha do "Como evitar os step-ins do Debug do VC dentro do ATL/STL".
Wanderley Caloni | website | em 30/11/2006 | #
Novo adendo: atualmente a última versão do WinDbg reconhece perfeitamente os símbolos gerados pelo Visual Studio 2005 com a configuração padrão (edit and continue).
rebarba rebarba
  ::::