aspose.info
PT

Formato de arquivo PDB - um arquivo de banco de dados do programa

Atualizado em

O que é um arquivo PDB?

Um arquivo com extensão .pdb é um arquivo de banco de dados de programa que contém informações de depuração para um executável compilado (EXE/DLL). Os arquivos PDB são gerados por compiladores da Microsoft quando um programa de aplicativo é compilado no modo de depuração. A presença do arquivo PDB pode ajudar na engenharia reversa de um executável, pois contém informações significativas sobre todos os símbolos dos módulos. É por esse motivo que esses arquivos são mantidos separados do executável final. A [API DgbHelp] da Microsoft (https://learn.microsoft.com/en-us/windows/win32/debug/dbghelp-functions) pode abrir um arquivo PDB para obter informações como públicos e exportações, símbolos globais, símbolos locais, tipo de dados, arquivos de origem e números de linha.

Formato de arquivo PDB

PDB é o formato de arquivo proprietário da Microsoft e ainda não foi documentado oficialmente em nenhum lugar. No entanto, uma documentação inicial está disponível aqui e pode ser referenciada.

Fluxos PDB

Os arquivos PDB consistem em vários fluxos em que cada fluxo atua como um arquivo individual virtual e contém informações. Os gravadores de arquivos PDB podem gravar nesses arquivos e o arquivo é finalizado somente após a emissão de um commit explícito. Um compilador pode continuar gravando em um arquivo PDB, mas confirmar apenas se todo o código do usuário for compilado com êxito. Um arquivo PDB consiste nos seguintes fluxos:

Número do fluxoConteúdoDescrição curta
1Pdb (header)Informações de versão e informações para conectar este PDB ao EXE
2Tpi (Gerenciador de tipos)Todos os tipos usados no executável.
3Dbi (Informações de depuração)Retém contribuições de seção e lista de ‘Mods’
4NomeMapaContém uma tabela de strings com hash
4-(n+4)n Mod’s (informações do módulo)Cada stream Mod contém símbolos e números de linha para um compiland
n+4Símbolo global hashUm índice que permite pesquisar em símbolos globais por nome
n+5Hash de símbolo públicoUm índice que permite pesquisar em símbolos públicos por endereços
n+6Registros de símbolosRegistros de símbolos reais de símbolos globais e públicos
n+7Digite hashHash usado pelo fluxo TPI.

Cada fluxo em um arquivo PDB é composto por várias páginas que não são necessariamente numeradas consecutivamente.

Cabeçalho do PDB

Um arquivo PDB começa com um Header que consiste em uma assinatura para identificar e validar o formato específico. O comprimento da assinatura depende do formato PDB. O cabeçalho pode ser maior que uma única página.

Metadados PDB

Os metadados do PDB são responsáveis por reconhecer todos os fluxos componentes, fornecendo o comprimento e a sequência de páginas de cada fluxo. Ordens são dadas aos streams consecutivamente; começando com 0. Há também um fluxo raiz não ordenado, que contém alguns dos metadados.

Referências

Veja também