Kas yra PDB failas?
Failas su plÄtiniu .pdb yra programos duomenų bazÄs failas, kuriame yra sukompiliuoto vykdomojo failo (EXE/DLL) derinimo informacija. PDB failus generuoja Microsoft kompiliatoriai, kai taikomoji programa kompiliuojama derinimo režimu. PDB failo buvimas gali padÄti apgrÄžti vykdomÄ jį failÄ , nes jame yra svarbios informacijos apie visus modulių simbolius. BÅ«tent dÄl Å¡ios priežasties Å¡ie failai laikomi atskirai nuo galutinio vykdomojo failo. Microsoft DgbHelp API gali atidaryti PDB failÄ , kad gautų informacijÄ , pvz., vieÅ¡uosius ir eksportuotus duomenis, visuotinius simbolius, vietinius simbolius, tipo duomenis, Å¡altinio failus ir eiluÄių numerius.
PDB failo formatas
PDB yra Microsoft patentuotas failo formatas ir dar niekur nebuvo oficialiai dokumentuotas. TaÄiau pradinÄ dokumentacija yra prieinama here ir gali bÅ«ti nurodyta.
PBP srautai
PDB failus sudaro keli srautai, kur kiekvienas srautas veikia kaip virtualus atskiras failas ir jame yra informacijos. PDB failų kÅ«rÄjai gali raÅ¡yti į Å¡iuos failus ir failas baigiamas tik tada, kai iÅ¡duodamas aiÅ¡kus įsipareigojimas. Kompiliatorius gali ir toliau raÅ¡yti į PDB failÄ , bet įsipareigoti tik tada, kai sÄkmingai kompiliuojamas visas vartotojo kodas. PBP failÄ sudaro Å¡ie srautai:
| Srauto Nr. | Turinys | Trumpas aprašymas |
|---|---|---|
| 1 | Pdb (antraÅ¡tÄ) | Versijos informacija ir informacija, skirta prijungti šį PBP prie EXE |
| 2 | Tpi (tipo tvarkyklÄ) | Visi vykdomajame faile naudojami tipai. |
| 3 | Dbi (Debug information) | Turi skilties indÄlius ir ‘Modifikacijų’ sÄ raÅ¡Ä |
| 4 | NameMap | Laiko maiÅ¡os stygų lentelÄ |
| 4-(n+4) | n Mod’s (Modulio informacija) | Kiekviename Mod sraute yra simboliai ir eiluÄių numeriai vienam kompilandui |
| n+4 | Pasaulinio simbolio maiÅ¡a | RodyklÄ, leidžianti ieÅ¡koti visuotiniuose simboliuose pagal pavadinimÄ |
| n+5 | VieÅ¡ojo simbolio maiÅ¡a | RodyklÄ, leidžianti ieÅ¡koti vieÅ¡uose simboliuose pagal adresus |
| n+6 | Simbolių įrašai | Tikrieji pasaulinių ir viešųjų simbolių simbolių įrašai |
| n+7 | Ä®veskite maiÅ¡Ä | TPI sraute naudojama maiÅ¡a. |
Kiekvienas PBP failo srautas susideda iÅ¡ kelių puslapių, kurie nebÅ«tinai yra sunumeruoti iÅ¡ eilÄs.
PBP antraÅ¡tÄ
PDB failas turi antraÅ¡tÄ, kuriÄ sudaro paraÅ¡as, skirtas konkretaus formato identifikavimui ir patvirtinimui. ParaÅ¡o ilgis priklauso nuo PBP formato. AntraÅ¡tÄ gali bÅ«ti ilgesnÄ nei vienas puslapis.
PBP metaduomenys
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. Taip pat yra nesutvarkytas šakninis srautas, kuriame yra kai kurie metaduomenys.