Deskripsi.File PDB dan.DBG file

Terjemahan Artikel Terjemahan Artikel
ID Artikel: 121366 - Melihat produk di mana artikel ini berlaku.
Perbesar semua | Perkecil semua

Pada Halaman ini

RINGKASAN

The.PDB ekstensi berdiri untuk "program database." Memegang format baru untuk menyimpan informasi debug yang diperkenalkan dalam Visual C++ Versi 1.0. Di masa depan.PDB file juga akan mengadakan proyek lain informasi negara. Salah satu motivasi paling penting untuk perubahan format ini mengijinkan incremental menghubungkan debug versi program, perubahan pertama kali diperkenalkan dalam Visual C++ versi 2.0.

The.DBG ekstensi adalah singkatan dari "debug." The.DBG file yang dibuat dengan 32-bit NT toolset berada dalam format file Portable Executable (PE). Mereka berisi bagian dengan COFF, FPO, dan dalam beberapa kasus Codeview informasi. Visual C++ terpadu debugger dapat membaca.DBG file dalam ini format, namun mengabaikan bagian simbol COFF dan mencari Codeview informasi.

Jika Anda perlu untuk menentukan apa simbol informasi terkandung dalam.DBG file, Anda dapat mengetik berikut pada prompt perintah:
Dumpbin sample.dbg/symbol.
				
Catatan Jalan mungkin harus menyertakan direktori untuk Dumpbin.exe dan MSdis100.dll:
Path=%Path%;C:\Program Files\DevStudio\VC\bin;C:\Msssdk\bin
				
Untuk informasi lebih lanjut tentang DUMPBIN, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
177429Contoh output DUMPBIN

INFORMASI LEBIH LANJUT

The.File PDB

Sementara sebelumnya, 16-bit versi Visual C++ digunakan.File PDB, debugging informasi yang disimpan dalam mereka ditambahkan ke akhir.EXE atau .File DLL oleh linker. Dalam versi Visual C++ yang disebutkan di atas, linker dan debugger terpadu dimodifikasi untuk memungkinkan.PDB file untuk digunakan secara langsung selama proses debugging, sehingga menghilangkan jumlah besar bekerja untuk linker dan juga melewati rumit CVPACK batas jenis 64 K.

Untuk informasi lebih lanjut tentang keterbatasan CVPACK, klik nomor artikel di bawah ini untuk melihat artikel di dalam Basis Pengetahuan Microsoft:
112335BUG: CK1020 atau CK4009 yang dihadapi ketika jenis info melebihi 64 K
Secara default, ketika Anda membangun proyek-proyek yang dihasilkan oleh Visual Workbench, kompiler beralih /Fd digunakan untuk mengubah nama.PDB file untuk <project>.PDB. Oleh karena itu, Anda akan hanya memiliki satu.File PDB seluruh proyek. </project>

Ketika Anda menjalankan makefiles yang tidak dihasilkan oleh Visual Workbench, dan /Fd tidak digunakan dengan /Zi, Anda akan berakhir dengan dua.PDB file:
  • VCx0.PDB (di mana "x" merujuk kepada versi utama yang sesuai Visual C++, "2" atau "4"), yang menyimpan semua informasi debug untuk individu.OBJ file. Itu berada di dalam direktori di mana proyek makefile tinggal.
  • <project>.PDB, yang menyimpan semua informasi debug untuk hasil .EXE file. Itu tinggal di \WINDEBUG subdirektori.</project>
Mengapa dua file? Ketika kompilator berjalan, itu tidak tahu nama .EXE file ke yang.OBJ file akan terhubung, sehingga tidak bisa kompilator menempatkan informasi ke dalam <project>.PDB. Dua file menyimpan berbeda informasi. Setiap kali Anda mengkompilasi.OBJ file, Kompilator menyatu informasi debugging ke VCX0.PDB. Tidak menempatkan simbol informasi seperti definisi fungsi. Itu hanya menempatkan dalam informasi mengenai jenis. Salah satu manfaat dari ini adalah bahwa ketika setiap file sumber termasuk header umum file seperti <windows.h>, semua typedefs dari header ini adalah hanya disimpan sekali, daripada di setiap.OBJ file. </windows.h></project>

Ketika Anda menjalankan linker, ia menciptakan <project>.PDB, yang memegang debugging informasi untuk proyek.EXE file. Semua debugging informasi, termasuk fungsi prototipe dan segala sesuatu yang lain, ditempatkan ke <project>.PDB, bukan hanya jenis informasi yang ditemukan di VCX0.PDB. The dua jenis dari.File PDB berbagi ekstensi yang sama karena mereka Arsitektur serupa; mereka berdua memungkinkan update inkremental. Namun demikian, mereka benar-benar menyimpan informasi yang berbeda. </project></project>

Baru Visual C++ debugger menggunakan <project>.PDB file yang dibuat oleh linker secara langsung, dan komprehensif path yang mutlak.PDB dalam.EXE atau .DLL file. Jika tidak dapat menemukan debugger.PDB file di lokasi tersebut atau jika jalan tidak sah (jika, misalnya, proyek dipindahkan ke lain komputer), debugger tampak untuk itu dalam direktori saat ini. </project>

The.DBG file

Visual C++ terintegrasi debugger juga dapat menggunakan.DBG file selama mereka terbuat dari format Codeview berisi binari debugging output. Ini sangat berguna untuk debugging ketika kode sumber tidak tersedia. Bahkan tanpa sumber.DBG file memungkinkan Anda untuk mengatur breakpoints pada fungsi, Watch variabel, dan melihat fungsi dalam panggilan stack. Juga diperlukan untuk OLE RPC debugging.

Satu peringatan perlu menunjukkan: ketika bekerja dengan simbol dari.DBG file, Anda harus menggunakan nama sepenuhnya dihiasi. Misalnya, untuk menetapkan Breakpoint panggilan ke fungsi sndPlaySound Windows, Anda akan menentukan _sndPlaySoundA@8 sebagai lokasi.

Sebenarnya ada dua.DBG format file. Format lama telah ada selama cukup lama di dunia 16-bit. Sebagai contoh, karena format.COM file adalah gambar biner sederhana yang dimuat ke memori, Codeview debugging informasi tidak akan ditambahkan ke akhir file karena file ukuran melebihi batas 64 K untuk.COM file. Oleh karena itu simbolis informasi sebaliknya dimasukkan ke dalam terpisah.DBG file, yang hanya Codeview informasi di dalamnya. The.DBG file juga dapat dihasilkan oleh menjalankan CVPACK.EXE file menggunakan pilihan /strip.

Untuk 32-bit.Mengkoleksi, Visual c + + versi 2.x dan 4.x debugger simbol pengendali tidak membaca format lama. Sebaliknya, membaca format yang digunakan dalam Windows NT.DBG file, disediakan untuk digunakan dengan sistem.File DLL. Ini.DBG file adalah format file Portable Executable (PE) dan berisi bagian dengan COFF, FPO, dan dalam beberapa kasus Codeview simbolis informasi. Debugger Visual C++ baru membaca.DBG file dalam format ini hanya. Selain itu, hanya menggunakan informasi Codeview, mengabaikan bagian simbol lain.

Mungkin untuk strip informasi debug dari PE file dan menyimpannya dalam .DBG file untuk digunakan oleh debugger. Untuk bekerja, debugger perlu tahu apakah untuk menemukan informasi debug dalam berkas terpisah atau tidak dan Apakah informasi yang telah telah dicabut dari file atau tidak. Salah satu metode akan untuk debugger untuk mencari melalui file eksekusi yang mencari informasi debug. Namun, untuk menyelamatkan debugger dari karena harus Cari berkas, berkas karakteristik lapangan (IMAGE_FILE_DEBUG_STRIPPED) diciptakan yang menunjukkan bahwa berkas telah dicabut. Debugger dapat mencari ini lapangan di PE file header untuk dengan cepat menentukan apakah debug informasi yang terdapat dalam file atau tidak.

Untuk menghasilkan.DBG file dalam format ini, Anda dapat menggunakan REBASE.EXE, yang diberikan dengan Win32 SDK. Silakan lihat dokumentasi Win32 SDK rincian lebih lanjut.

Selama membangun eceran Windows NT, simbol debug yang dilucuti dari biner sistem dan driver dan disimpan di terpisah.DBG file. Hal ini dilakukan karena kernel Windows NT debugger dapat menggunakan ini.DBG file dan memberikan simbol debugging bahkan untuk driver dioptimalkan. Ingat, bagaimanapun, bahwa Visual C++ terintegrasi debugger tidak dirancang untuk debug mode proteksi kode kernel.

Windows NT simbol file dapat ditemukan di sebuah subdirektori debug dari \SUPPORT direktori pada CD-ROM eceran Windows NT. File-file ini harus disalin dari CD-ROM ke hard drive Anda. Untuk pengguna modus Debug pada debugger mesin target.DBG simbol harus hadir dalam Windows NT \<winnt>Direktori \SYMBOLS sistem target (<winnt> adalah direktori» dimana Windows NT diinstal). Program penataan Visual C++ baru menginstal ikon "NT sistem simbol Setup" dalam kelompok program Anda. Anda dapat menggunakannya untuk menyalin secara otomatis.DBG file dari CD-ROM Windows NT Workstation disk untuk struktur benar direktori pada hard drive Anda. Metode ini tidak bekerja untuk Windows NT Server 4.0 CD-ROM karena.DBG file disimpan dalam format terkompresi. </winnt></winnt>

Untuk kernel debugging, tempat.DBG file ke pohon simbol di bawah direktori yang ditentukan melalui variabel lingkungan _NT_SYMBOL_PATH (untuk misalnya, C:\DEBUG\SYMBOLS). Kernel debugging mungkin dengan satu set minimal simbol-simbol yang terdiri dari simbol untuk semua driver (*.SYS) di SYMBOLS\SYS direktori, dan simbol untuk NTOSKRNL.EXE dan HAL.DLL di Direktori SYMBOLS\EXE dan SYMBOLS\DLL, masing-masing. Untuk informasi lebih lanjut di kernel debugging, merujuk pada diskusi mengenai kernel debugging di Windows NT DDK Programmer's Guide.

Sementara itu secara teoritis mungkin untuk mengkonversi dari.PDB mengajukan kembali ke .DBG file, itu bukanlah yang biasa. Saat ini, kita tahu tidak ada alat tersebut. Jika kita mendengar dari alat tersebut, kami akan memperbarui artikel ini dalam Microsoft Basis Pengetahuan.

Properti

ID Artikel: 121366 - Kajian Terakhir: 14 September 2011 - Revisi: 2.0
Berlaku bagi:
  • Microsoft Visual C++ 2.1
  • Microsoft Visual C++ 4.0 Standard Edition
Kata kunci: 
kbbug kbdebug kbide kbinfo kbmt KB121366 KbMtid
Penerjemahan Mesin
PENTING: Artikel ini diterjemahkan menggunakan perangkat lunak mesin penerjemah Microsoft dan bukan oleh seorang penerjemah. Microsoft menawarkan artikel yang diterjemahkan oleh seorang penerjemah maupun artikel yang diterjemahkan menggunakan mesin sehingga Anda akan memiliki akses ke seluruh artikel baru yang diterbitkan di Pangkalan Pengetahuan (Knowledge Base) dalam bahasa yang Anda gunakan. Namun, artikel yang diterjemahkan menggunakan mesin tidak selalu sempurna. Artikel tersebut mungkin memiliki kesalahan kosa kata, sintaksis, atau tata bahasa, hampir sama seperti orang asing yang berbicara dalam bahasa Anda. Microsoft tidak bertanggung jawab terhadap akurasi, kesalahan atau kerusakan yang disebabkan karena kesalahan penerjemahan konten atau penggunaannya oleh para pelanggan. Microsoft juga sering memperbarui perangkat lunak mesin penerjemah.
Klik disini untuk melihat versi Inggris dari artikel ini:121366
Sanggahan Konten KB yang Tidak Lagi Diperbarui
Artikel ini berisi tentang produk yang tidak lagi didukung oleh Microsoft. Oleh karena itu, artikel ini disajikan ?sebagaimana adanya? dan tidak akan diperbarui.

Berikan Masukan

 

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