aspose.info
DA

PDB-filformat - En programdatabasefil

Opdateret

Hvad er en PDB fil?

En fil med filtypenavnet .pdb er en programdatabasefil, der indeholder fejlfindingsoplysninger for en kompileret eksekverbar (EXE/DLL). PDB-filer genereres af Microsoft Compilers, når et applikationsprogram kompileres i fejlretningstilstand. Tilstedeværelsen af PDB-fil kan hjælpe med reverse engineering af en eksekverbar, da den indeholder væsentlig information om alle symboler på modulerne. Det er af denne grund, at disse filer holdes adskilt fra den endelige eksekverbare. Microsofts DgbHelp API kan åbne en PDB-fil for at indhente information såsom publics og eksport, globale symboler, lokale symboler, typedata, kildefiler og linjenumre.

PDB filformat

PDB er Microsofts proprietære filformat og er endnu ikke blevet officielt dokumenteret nogen steder. En startdokumentation er dog tilgængelig here og kan refereres til.

PDB-strømme

PDB-filer består af flere streams, hvor hver stream fungerer som en virtuel individuel fil og indeholder information. PDB-filskrivere kan skrive til disse filer, og filen færdiggøres først, efter at der er udstedt en eksplicit commit. En compiler kan blive ved med at skrive til en PDB-fil, men kun commit, hvis al brugerkode kompileres med succes. En PDB-fil består af følgende strømme:

Strøm nr.IndholdKort beskrivelse
1Pdb (header)Versionsinformation og information til at forbinde denne PDB til EXE
2Tpi (Type manager)Alle de typer, der bruges i den eksekverbare.
3Dbi (Debug information)Indeholder sektionsbidrag og liste over ‘Mods’
4NavnekortIndeholder et hash-strengbord
4-(n+4)n Mod’er (moduloplysninger)Hver Mod-stream indeholder symboler og linjenumre for én compiland
n+4Global symbol hashEt indeks, der tillader søgning i globale symboler efter navn
n+5Offentlig symbol hashEt indeks, der tillader søgning i offentlige symboler efter adresser
n+6SymboloptegnelserFaktiske symbolregistreringer af globale og offentlige symboler
n+7Skriv hashHash brugt af TPI-strømmen.

Hver strøm i en PDB-fil består af flere sider, som ikke nødvendigvis er fortløbende nummererede.

PDB header

En PDB-fil har en Header, der består af en signatur til at identificere og validere det specifikke format. Længden af signaturen afhænger af PDB-formatet. Overskriften kan være længere end en enkelt side.

FBF-metadata

The PDB metadata is responsible to recognize all of the component streams, giving the length, and sequence of pages for each stream. Orders are given to streams consecutively; starting with 0. Der er også en uordnet rodstrøm, som indeholder nogle af metadataene.

Referencer

Se også