aspose.info
CS

Formát souboru PDB - soubor databáze programu

Aktualizováno

Co je soubor PDB?

Soubor s příponou .pdb je soubor databáze programu, který obsahuje informace o ladění kompilovaného spustitelného souboru (EXE/DLL). Soubory PDB jsou generovány kompilátory společnosti Microsoft, když je aplikační program kompilován v režimu ladění. Přítomnost souboru PDB může pomoci při zpětném inženýrství spustitelného souboru, protože obsahuje významné informace o všech symbolech modulů. Z tohoto důvodu jsou tyto soubory uchovávány odděleně od konečného spustitelného souboru. Microsoft DgbHelp API může otevřít soubor PDB a získat informace, jako jsou publics a exports, globální symboly, místní symboly, typová data, zdrojové soubory a čísla řádků.

Formát souboru PDB

PDB je proprietární formát souborů společnosti Microsoft a dosud nebyl nikde oficiálně zdokumentován. Úvodní dokumentace je však k dispozici zde a lze na ni odkazovat.

Streamy PDB

Soubory PDB se skládají z více proudů, kde každý proud funguje jako virtuální samostatný soubor a obsahuje informace. Zapisovatelé souborů PDB mohou zapisovat do těchto souborů a soubor je finalizován pouze po vydání explicitního potvrzení. Kompilátor může pokračovat v zápisu do souboru PDB, ale odevzdat jej pouze v případě, že se veškerý uživatelský kód zkompiluje úspěšně. Soubor PDB se skládá z následujících streamů:

Číslo prouduObsahKrátký popis
1Pdb (záhlaví)Informace o verzi a informace pro připojení tohoto PDB k EXE
2Tpi (Správce typů)Všechny typy použité ve spustitelném souboru.
3Dbi (Informace o ladění)Uchovává příspěvky sekce a seznam ‘Mods’
4Mapa jmenObsahuje tabulku hashovaných řetězců
4-(n+4)n Mod’s (informace o modulu)Každý Mod stream obsahuje symboly a čísla řádků pro jednu kompilaci
n+4Globální symbol hashIndex, který umožňuje vyhledávání v globálních symbolech podle názvu
n+5Hash veřejného symboluIndex, který umožňuje vyhledávání ve veřejných symbolech podle adres
n+6Záznamy symbolůAktuální záznamy symbolů globálních a veřejných symbolů
n+7Zadejte hashHash používaný streamem TPI.

Každý proud v souboru PDB se skládá z několika stránek, které nemusí být nutně postupně číslovány.

Záhlaví PDB

Soubor PDB je s hlavičkou, která se skládá z podpisu pro identifikaci a ověření konkrétního formátu. Délka podpisu závisí na formátu PDB. Záhlaví může být delší než jedna stránka.

Metadata PDB

Metadata PDB jsou zodpovědná za rozpoznání všech dílčích toků, přičemž u každého toku udává délku a sekvenci stránek. Příkazy se zadávají proudům postupně; počínaje 0. Existuje také neuspořádaný kořenový proud, který obsahuje některá metadata.

Reference

Viz také