.PDB dosyaları ve .DBG dosyalarının açıklaması

Makale çevirileri Makale çevirileri
Makale numarası: 121366 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

.PDB uzantısı anlamına gelir, "için veritabanını program". Bu, Visual C++ sürüm 1.0 kullanılmaya başlanan bir hata ayıklama bilgilerini depolamak için yeni bir biçime sahiptir. Daha sonra .PDB dosya başka bir proje durum bilgilerini tutacaktır. Hata ayıklama sürümleri, programları, Visual C++ sürüm 2.0 ilk olarak sunulan bir değişiklik, artan bağlama izin veren bir biçimde değiştirmek için en önemli olan motivations oldu.

.DBG uzantısı "hata ayıklama için." anlamına gelir. 32-Bit NT araç'ile oluşturulan .DBG taşınabilir çalıştırılabilir (PE) dosya biçiminde dosyalardır. Bunlar, bölümler COFF (FPO) ve bazı durumlarda Codeview bilgileri içerir. COFF simge bölümlerine göz ardı eder ve Codeview bilgi için görünür ancak tümleşik Visual C++ hata ayıklayıcısını bu biçiminde .DBG dosyaları okuyabilir.

Simge bilgileri bir .DBG dosyasında bulunan belirlemek istiyorsanız, komut isteminde aşağıdakileri yazabilirsiniz:
Dumpbin sample.dbg/symbol.
				
Not yol dumpbin.exe ve MSdis100.dll dizinler dahil gerekebilir:
Path=%Path%;C:\Program Files\DevStudio\VC\bin;C:\Msssdk\bin
				
DUMPBIN hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
177429DUMPBIN çıktı örnekleri

Daha fazla bilgi

.PDB dosyaları

Visual C++ önceki, 16-bit sürümleri .PDB dosyaları kullanılır, ancak bunları depolanan hata ayıklama bilgileri tarafından linker .exe veya .dll dosya sonuna eklenmiş. Visual C++ ile yukarıda belirtilen sürümlerinde linker hem de tümleşik hata ayıklayıcısını hata ayıklama işlemi sırasında doğrudan kullanılacak .PDB dosyaları izin vermek için böylece linker çalışma büyük tutarlar'ı kaldırarak ve ayrıca hantal CVPACK sınırı 64 K türlerinin atlayarak değiştirildi.

CVPACK kısıtlamaları hakkında daha fazla bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
112335Hata: CK1020 veya CK4009 türü bilgisi 64 K aştığında karşılaştı.
Tarafından Visual Workbench, oluşturulan projeler oluşturma varsayılan olarak, derleyici anahtarı /fd <project>.PDB .PDB dosyayı yeniden adlandırmak için kullanılır. Bu nedenle, tüm proje için yalnızca bir .PDB dosya gerekir.

Tarafından bir Visual Workbench oluşturulan makefiles çalıştırın ve /fd /Zi ile kullanılan iki .PDB dosyalarla sona ereceği:
  • Tek tek dosyaları .OBJ tüm hata ayıklama bilgilerini saklayan (burada "x" ilgili Visual C++, "2"veya "4" ana sürümüne başvuruyor) VCx0.PDB. Bu proje makefile bulunduğu dizinde bulunur.
  • Sonuç .exe dosyası tüm hata ayıklama bilgilerini saklayan .PDB <project>. Bu, \WINDEBUG alt dizininde bulunur.
Neden iki dosyaları? Derleyici çalıştırdığınızda; bu nedenle, derleyici bilgileri <project>.PDB koyamazsınız içine .OBJ dosyaları bağlanır, .exe dosya adı hangisiyle. Dosyaları iki farklı bilgi depolar. Her bir .OBJ dosyasını derleyin, derleyici hata ayıklama bilgilerini VCX0.PDB birleştirir. Bu simge bilgi işlevi tanımları gibi yerleştirin değil. Yalnızca, türleri ile ilgili bilgileri koyar. Bu yararlarından biri, her kaynak dosyası <windows.h> gibi ortak bir üstbilgi dosyaları içeriyorsa, bu üstbilgileri gelen tüm typedefs yalnızca bir kez yerine her .OBJ dosyasında depolanır, olur.

The linker çalıştırmak, projenin .exe dosyası için hata ayıklama bilgileri tutan .PDB <project>oluşturur. Işlev prototipler ve şey, tüm hata ayıklama bilgilerini, <project>.PDB, yalnızca VCX0.PDB içinde bulunan tür bilgi halinde yerleştirilir. Mimari benzer oldukları için iki tür .PDB dosyaları eskisiyle aynı uzantı paylaşım; her ikisi de değişenleri güncelleştirme sağlar. Yine de, bunların aslında farklı bilgileri depolar.

Yeni Visual C++ hata ayıklayıcı tarafından linker doğrudan <project>.PDB dosyasını kullanır ve .PDB mutlak yolu .exe veya .dll dosyasında katıştırır. Hata ayıklayıcısını .PDB dosya bu konumda bulamazsanız veya yol geçersiz (örneğin, proje başka bir bilgisayara taşınmıştır,), hata ayıklayıcısını için geçerli dizinde arar.

.DBG dosyaları

Tümleşik Visual C++ hata ayıklayıcısını, çıkış hata ayıklama bir ikili içeren Codeview biçimden yapılan sürece .DBG dosyalarını da kullanabilirsiniz. Bu, kaynak kodu kullanılabilir olmadığında hata ayıklamak için yararlıdır. Kaynak bile .DBG dosyalar işlevlerine kesme noktası ayarlamak, değişkenleri izlemek ve çağrı yığını içindeki fonksiyonları görmek için izin verir. Bunlar aynı zamanda OLE RPC hata ayıklama için gereklidir.

Bir uyarı gösterilen gerekiyor: .DBG dosyasından bir simge ile çalışırken, tam olarak Süslenen adlarını kullanmanız gerekir. Örneğin, Windows sndPlaySound işlevine bir çağrı kesme noktası ayarlamak için <a0></a0>, konumu olarak _sndPlaySoundA@8 belirtirsiniz.

Gerçekte iki .DBG dosya biçimleri vardır. Eski biçim, 16-bit dünyada oldukça bir süre için varolan. Biçimi, .com dosyaları belleğe yüklenen basit bir ikili resim olduğundan, dosya boyutu 64 K sınırı .com dosya aşabilir olduğundan, hata ayıklama bilgisi Codeview dosyanın sonuna eklenmesi değil. Bu nedenle simgesel bilgi yerine yalnızca Codeview bilgileri de sahip ayrı bir .DBG dosyaya koy. .DBG dosyaları da /strip seçeneğini kullanarak bir .exe dosyası CVPACK çalıştırarak oluşturulabilir.

Hata Ayıklayıcı'nın simge işleyicisi, 32-bit .EXEs, Visual C++ sürüm 2.x ve 4.x için eski biçiminde okumuyor. Bunun yerine, sistem .dll dosyalarıyla kullanmak için sağlanan Windows NT .DBG dosyalarında kullanılan biçim okur. Bu .DBG dosyaları taşınabilir çalıştırılabilir (PE) dosya biçiminde ve bölümler COFF (FPO) ve bazı durumlarda Codeview simgesel bilgileri içerir. Yeni Visual C++ hata ayıklayıcısını, yalnızca bu biçimde .DBG dosyaları okur. Ayrıca, diğer simge bölümlerden yoksayılıyor Codeview bilgileri, yalnızca kullanır.

Hata ayıklama bilgilerini bir PE dosyası kald?rmak ve hata ayıklayıcıları tarafından kullanılacak bir .DBG dosyasında depolamak olasıdır. Bunun için işlem hata ayıklayıcısını gizlenip veya ayrı bir dosyada hata ayıklama bilgileri bulmak ve olup bilgileri dosyadan veya şeritli bilmesi gerekir. Hata ayıklayıcısını, hata ayıklama bilgileri için arayan bir yürütülebilir dosya arama yapmak için bir yöntem olacaktır. Ancak, için kaydetme, dosyayı aramak zorunda gelen hata ayıklayıcısını bir dosya özelliği alanı (IMAGE_FILE_DEBUG_STRIPPED) dosya şeritli gösteren invented. Bu alana bir PE dosyası başlığı hızla hata ayıklama bilgileri dosyaya var olup olmadığını belirlemek için hata ayıklayıcıları arayabilirsiniz.

Bu biçimde bir .DBG dosyası oluşturmak için <a0></a0>, Win32 SDK ile birlikte sağlanan REBASE.EXE kullanabilirsiniz. Lütfen ayrıntılar için Win32 SDK belgelerine bakın.

Windows NT perakende yap?lar sırasında hata ayıklama simgeleri sistem ikili dosyalarını ve sürücülerini çıkarılır ve ayrı .DBG dosyalarında depolanır. Bu, Windows NT Çekirdek hata ayıklayıcısını bu .DBG dosyalarını kullanma ve hata ayıklama simgeleri bile en iyi duruma getirilmiş sürücüleri sağlamak için yapılır. Ancak, tümleşik Visual C++ hata ayıklayıcısını, korumalı mod çekirdek kod hata ayıklamak için tasarlanmamıştır unutmayın.

Windows NT simge dosyaları, Windows NT CD-ROM'u perakende \SUPPORT dizininin bir hata ayıklama alt dizininde bulunabilir. Bu dosyalar CD-ROM'dan sabit diskinize kopyalanması gerekir. Kullanıcı modu hata ayıklayıcısının hedef makinede hata ayıklamak için .DBG simgeleri hedef sistemin Windows NT \<winnt>\SYMBOLS dizininde bulunması gerekir (<winnt>Windows NT yüklü olduğu dizindir). Yeni Visual C++ Kur programı, "NT sistem simgeleri Kur" simge program grubunuzdaki yükler. .DBG dosyaları'Windows NT Workstation'CD-ROM'unu diskinizden doğru dizin yapısına sabit diskinize otomatik olarak kopyalamak için kullanabilirsiniz. .DBG dosya sıkıştırılmış biçimde depolandığından, bu yöntem Windows NT Server 4.0 CD-için çalışmaz.

Çekirdek hata ayıklama için .DBG dosyaları (örneğin, C:\DEBUG\SYMBOLS) _NT_SYMBOL_PATH ortam değişkeni tarafından belirtilen dizin altındaki bir simge ağacında yerleştirin. Çekirdek hata ayıklama simgeleri tüm sürücülerin SYMBOLS\SYS dizininde (*.SYS) simgeler ve simge NTOSKRNL.EXE ve HAL.DLL SYMBOLS\EXE ve SYMBOLS\DLL dizinlerde sırasıyla oluşan en az bir dizi olasıdır. Çekirdek hata ayıklama ile ilgili daha fazla bilgi için çekirdek Windows NT DDK Programmer's Guide'hata ayıklama ile ilgili tartışma başvurun.

Teorik olarak .PDB dosyadan bir .DBG dosyasına dönüştürmek mümkün olsa da, önemsiz bir görev değildir. Şu anda böyle bir aracı hiçbir biliyoruz. Böyle bir aracı işitirseniz, bu makalede Microsoft Knowledge Base'de güncelleştireceğiz.

Özellikler

Makale numarası: 121366 - Last Review: 5 Ağustos 2005 Cuma - Gözden geçirme: 3.1
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft Visual C++ 2.0 Professional Edition
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
  • Microsoft Visual C++ 6.0 Service Pack 5
  • Microsoft Visual C++ 5.0 Standard Edition
  • Microsoft Visual C++ 6.1
Anahtar Kelimeler: 
kbmt kbbug kbdebug kbide kbinfo KB121366 KbMttr
Machine-translated Article
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:121366
Kullanım Dışı Bilgi Bankası İçeriği Yasal Uyarı
Bu makale, Microsoft'un artık destek sağlamadığı ürünler ile ilgili olarak yazılmıştır. Bu nedenle, bu makale "olduğu gibi" sağlanmıştır ve bundan sonra güncelleştirilmeyecektir.

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com