Bir PDB dosyası nedir?
.pdb uzantılı bir dosya, derlenmiÅ bir yürütülebilir dosya (EXE/DLL) için hata ayıklama bilgileri içeren bir program veritabanı dosyasıdır. PDB dosyaları, bir uygulama programı hata ayıklama modunda derlendiÄinde Microsoft Compilers tarafından oluÅturulur. PDB dosyasının varlıÄı, modüllerin tüm sembolleri hakkında önemli bilgiler içerdiÄinden yürütülebilir bir dosyanın tersine mühendislik iÅlemine yardımcı olabilir. Bu nedenle bu dosyalar son yürütülebilir dosyadan ayrı tutulur. Microsoft’un DgbHelp API’si, ortaklar ve dıÅa aktarmalar, genel semboller, yerel semboller gibi bilgileri elde etmek için bir PDB dosyası açabilir. veri, kaynak dosyaları ve satır numaralarını yazın.
PDB Dosya Biçimi
PDB, Microsoft’un tescilli dosya biçimidir ve henüz hiçbir yerde resmi olarak belgelenmemiÅtir. Ancak, bir baÅlangıç belgesi burada mevcuttur ve baÅvurulabilir.
PDB AkıÅları
PDB dosyaları, her akıÅın sanal bir baÄımsız dosya gibi davrandıÄı ve bilgi içerdiÄi birden çok akıÅtan oluÅur. PDB dosya yazarları bu dosyalara yazabilir ve dosya yalnızca açık bir taahhüt verildikten sonra sonlandırılır. Bir derleyici, bir PDB dosyasına yazmaya devam edebilir, ancak yalnızca tüm kullanıcı kodu baÅarıyla derlenirse taahhütte bulunabilir. Bir PDB dosyası aÅaÄıdaki akıÅlardan oluÅur:
| AkıŠNo. | İçindekiler | Kısa Açıklama |
|---|---|---|
| 1 | Pdb (baÅlık) | Sürüm bilgisi ve bu PDB’yi EXE’ye baÄlamak için bilgi |
| 2 | Tpi (Tip yöneticisi) | Yürütülebilir dosyada kullanılan tüm türler. |
| 3 | Dbi (Hata ayıklama bilgisi) | Bölüm katkılarını ve ‘Modlar’ listesini tutar |
| 4 | İsim Haritası | Karma bir dize tablosu tutar |
| 4-(n+4) | n Mod’lar (Modül bilgisi) | Her Mod akıÅı, bir derleme alanı için sembolleri ve satır numaralarını tutar |
| n+4 | Global sembol hash | İsme göre global sembollerde arama yapmaya izin veren bir indeks |
| n+5 | Genel sembol hash | Genel sembollerde adreslere göre arama yapılmasını saÄlayan bir dizin |
| n+6 | Sembol kayıtları | Global ve genel sembollerin gerçek sembol kayıtları |
| n+7 | Hash yazın | TPI akıÅı tarafından kullanılan karma. |
Bir PDB dosyasındaki her akıÅ, mutlaka ardıÅık olarak numaralandırılmayan birkaç sayfadan oluÅur.
PDB baÅlıÄı
Bir PDB dosyası, belirli biçimi tanımlamak ve doÄrulamak için bir imzadan oluÅan bir BaÅlıÄa sahiptir. İmzanın uzunluÄu PDB formatına baÄlıdır. BaÅlık, tek bir sayfadan daha uzun olabilir.
PDB Meta Verileri
PDB meta verileri, her akıŠiçin sayfaların uzunluÄunu ve sırasını vererek tüm bileÅen akıÅlarını tanımaktan sorumludur. Dizilere sıralı olarak emirler verilir; 0’dan baÅlayarak. Bazı meta verileri içeren sıralanmamıŠbir kök akıŠda vardır.