aspose.info
SV

PDB-filformat - En programdatabasfil

Uppdaterad

Vad är en PDB fil?

En fil med filtillägget .pdb är en programdatabasfil som innehåller felsökningsinformation för en kompilerad körbar fil (EXE/DLL). PDB-filer genereras av Microsofts kompilatorer när ett applikationsprogram kompileras i felsökningsläge. Förekomsten av PDB-fil kan hjälpa till med omvänd konstruktion av en körbar fil eftersom den innehåller betydande information om alla symboler i modulerna. Det är av denna anledning som dessa filer hålls åtskilda från den slutliga körbara filen. Microsofts DgbHelp API kan öppna en PDB-fil för att erhålla information som publik och export, globala symboler, lokala symboler, typdata, källfiler och radnummer.

PDB filformat

PDB är Microsofts proprietära filformat och har inte dokumenterats officiellt någonstans ännu. Däremot finns en startdokumentation tillgänglig här och kan refereras till.

PDB-strömmar

PDB-filer består av flera strömmar där varje ström fungerar som en virtuell individuell fil och innehåller information. PDB-filskrivare kan skriva till dessa filer och filen slutförs först efter att en explicit commit har utfärdats. En kompilator kan fortsätta skriva till en PDB-fil men commit bara om all användarkod kompileras framgångsrikt. En PDB-fil består av följande strömmar:

StrömnummerInnehållKort beskrivning
1Pdb (header)Versionsinformation och information för att koppla denna PDB till EXE
2Tpi (Typhanterare)Alla typer som används i den körbara filen.
3Dbi (Felsökningsinformation)Innehåller sektionsbidrag och lista över ‘Mods’
4NamnkartaHåller ett hastigt strängbord
4-(n+4)n Mods (modulinformation)Varje Mod-ström innehåller symboler och radnummer för en kompilation
n+4Global symbol hashEtt index som tillåter sökning i globala symboler efter namn
n+5Offentlig symbol hashEtt index som tillåter sökning i offentliga symboler efter adresser
n+6SymbolposterFaktiska symbolregister över globala och offentliga symboler
n+7Skriv hashHash som används av TPI-strömmen.

Varje ström i en PDB-fil består av flera sidor som inte nödvändigtvis är numrerade i följd.

PDB-huvud

En PDB-fil har en Header som består av en signatur för att identifiera och validera det specifika formatet. Längden på signaturen beror på PDB-formatet. Rubriken kan vara längre än en sida.

PDB Metadata

PDB-metadata är ansvarig för att känna igen alla komponentströmmar, vilket ger längden och sekvensen av sidor för varje ström. Order ges till strömmar i följd; börjar med 0. Det finns också en oordnad rotström, som innehåller en del av metadata.

Referenser

Se även