Deskripsi.File PDB dan.DBG file

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
Artikel ini telah diarsipkan. Artikel ditawarkan dalam bentuk "apa adanya" dan tidak akan dapat diperbarui lagi.
RINGKASAN
The.PDB ekstensi berdiri untuk "program database." Memegang format baruuntuk menyimpan informasi debug yang diperkenalkan dalam Visual C++Versi 1.0. Di masa depan.PDB file juga akan mengadakan proyek laininformasi negara. Salah satu motivasi paling penting untuk perubahanformat 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 dengan32-bit NT toolset berada dalam format file Portable Executable (PE).Mereka berisi bagian dengan COFF, FPO, dan dalam beberapa kasus Codeviewinformasi. Visual C++ terpadu debugger dapat membaca.DBG file dalamini format, namun mengabaikan bagian simbol COFF dan mencariCodeview informasi.

Jika Anda perlu untuk menentukan apa simbol informasi terkandung dalam.DBGfile, Anda dapat mengetik berikut pada prompt perintah:
Dumpbin sample.dbg/symbol.				
Catatan Jalan mungkin harus menyertakan direktori untuk Dumpbin.exe danMSdis100.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.PDBfile untuk digunakan secara langsung selama proses debugging, sehingga menghilangkanjumlah besar bekerja untuk linker dan juga melewatirumit 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 kompilatormenempatkan informasi ke dalam <project>.PDB. Dua file menyimpan berbedainformasi. Setiap kali Anda mengkompilasi.OBJ file, Kompilator menyatuinformasi debugging ke VCX0.PDB. Tidak menempatkan simbol informasiseperti definisi fungsi. Itu hanya menempatkan dalam informasi mengenai jenis.Salah satu manfaat dari ini adalah bahwa ketika setiap file sumber termasuk header umumfile seperti <windows.h>, semua typedefs dari header ini adalah hanyadisimpan sekali, daripada di setiap.OBJ file.</windows.h></project>

Ketika Anda menjalankan linker, ia menciptakan <project>.PDB, yang memegangdebugging informasi untuk proyek.EXE file. Semua debugginginformasi, termasuk fungsi prototipe dan segala sesuatu yang lain, ditempatkanke <project>.PDB, bukan hanya jenis informasi yang ditemukan di VCX0.PDB. Thedua jenis dari.File PDB berbagi ekstensi yang sama karena merekaArsitektur 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 olehlinker secara langsung, dan komprehensif path yang mutlak.PDB dalam.EXE atau.DLL file. Jika tidak dapat menemukan debugger.PDB file di lokasi tersebut atau jikajalan tidak sah (jika, misalnya, proyek dipindahkan ke lainkomputer), debugger tampak untuk itu dalam direktori saat ini.</project>

The.DBG file

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

Satu peringatan perlu menunjukkan: ketika bekerja dengan simbol dari.DBGfile, Anda harus menggunakan nama sepenuhnya dihiasi. Misalnya, untuk menetapkanBreakpoint panggilan ke fungsi sndPlaySound Windows, Anda akanmenentukan _sndPlaySoundA@8 sebagai lokasi.

Sebenarnya ada dua.DBG format file. Format lama telah ada selamacukup lama di dunia 16-bit. Sebagai contoh, karena format.COMfile adalah gambar biner sederhana yang dimuat ke memori, Codeview debugginginformasi tidak akan ditambahkan ke akhir file karena fileukuran melebihi batas 64 K untuk.COM file. Oleh karena itu simbolisinformasi sebaliknya dimasukkan ke dalam terpisah.DBG file, yang hanyaCodeview informasi di dalamnya. The.DBG file juga dapat dihasilkan olehmenjalankan CVPACK.EXE file menggunakan pilihan /strip.

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

Mungkin untuk strip informasi debug dari PE file dan menyimpannya dalam.DBG file untuk digunakan oleh debugger. Untuk bekerja, debugger perlutahu apakah untuk menemukan informasi debug dalam berkas terpisah atau tidak danApakah informasi yang telah telah dicabut dari file atau tidak. Salah satu metodeakan untuk debugger untuk mencari melalui file eksekusi yang mencariinformasi debug. Namun, untuk menyelamatkan debugger dari karena harus Cariberkas, berkas karakteristik lapangan (IMAGE_FILE_DEBUG_STRIPPED) diciptakanyang menunjukkan bahwa berkas telah dicabut. Debugger dapat mencari inilapangan di PE file header untuk dengan cepat menentukan apakah debuginformasi yang terdapat dalam file atau tidak.

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

Selama membangun eceran Windows NT, simbol debug yang dilucuti daribiner sistem dan driver dan disimpan di terpisah.DBG file. Hal ini dilakukankarena kernel Windows NT debugger dapat menggunakan ini.DBG file dan memberikansimbol debugging bahkan untuk driver dioptimalkan. Ingat, bagaimanapun, bahwaVisual C++ terintegrasi debugger tidak dirancang untuk debug mode proteksikode kernel.

Windows NT simbol file dapat ditemukan di sebuah subdirektori debug dari\SUPPORT direktori pada CD-ROM eceran Windows NT. File-file ini harusdisalin dari CD-ROM ke hard drive Anda. Untuk pengguna modus Debug padadebugger 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 menginstalikon "NT sistem simbol Setup" dalam kelompok program Anda. Anda dapat menggunakannya untukmenyalin secara otomatis.DBG file dari CD-ROM Windows NT Workstationdisk untuk struktur benar direktori pada hard drive Anda. Metode initidak bekerja untuk Windows NT Server 4.0 CD-ROM karena.DBG filedisimpan dalam format terkompresi.</winnt></winnt>

Untuk kernel debugging, tempat.DBG file ke pohon simbol di bawahdirektori yang ditentukan melalui variabel lingkungan _NT_SYMBOL_PATH (untukmisalnya, C:\DEBUG\SYMBOLS). Kernel debugging mungkin dengan satu set minimalsimbol-simbol yang terdiri dari simbol untuk semua driver (*.SYS) diSYMBOLS\SYS direktori, dan simbol untuk NTOSKRNL.EXE dan HAL.DLL diDirektori SYMBOLS\EXE dan SYMBOLS\DLL, masing-masing. Untuk informasi lebih lanjutdi kernel debugging, merujuk pada diskusi mengenai kernel debugging diWindows 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 MicrosoftBasis Pengetahuan.
kbDebug kbTools kbVC200 kbVC210 kbVC400 kbVC500

Properti

ID Artikel: 121366 - Tinjauan Terakhir: 12/04/2015 10:35:03 - Revisi: 2.0

Microsoft Visual C++ 2.1, Microsoft Visual C++ 4.0 Standard Edition

  • kbnosurvey kbarchive kbbug kbdebug kbide kbinfo kbmt KB121366 KbMtid
Tanggapan