/DEBUG
(Hasilkan info debug)
Opsi /DEBUG
linker membuat file informasi penelusuran kesalahan untuk file yang dapat dieksekusi.
Sintaks
/DEBUG
[:
{FASTLINK
||FULL
NONE
}]
Keterangan
Opsi ini /DEBUG
menempatkan informasi penelusuran kesalahan dari objek tertaut dan file pustaka ke dalam file database program (PDB). Ini memperbarui PDB selama build program berikutnya.
Executable (file EXE atau DLL) yang dibuat untuk penelusuran kesalahan berisi nama dan jalur PDB yang sesuai. Debugger membaca nama yang disematkan dan menggunakan PDB saat Anda men-debug program. Linker menggunakan nama dasar program dan ekstensi .pdb
untuk memberi nama database program, dan menyematkan jalur tempatnya dibuat. Untuk mengambil alih default ini, atur /PDB
opsi dan tentukan nama file yang berbeda.
Opsi /DEBUG:FASTLINK
ini tersedia di Visual Studio 2017 dan yang lebih baru. Opsi ini menghasilkan PDB terbatas yang mengindeks ke dalam informasi debug dalam file objek dan pustaka yang digunakan untuk membangun yang dapat dieksekusi alih-alih membuat salinan lengkap. Anda hanya dapat menggunakan PDB terbatas ini untuk men-debug dari komputer tempat biner dan pustakanya dibangun. Jika Anda menyebarkan biner di tempat lain, Anda dapat men-debugnya dari jarak jauh dari komputer build, tetapi tidak langsung di komputer pengujian. Sejak Visual Studio 2019, /DEBUG:FULL
waktu penautan telah meningkat secara signifikan, dan /DEBUG:FASTLINK
tidak selalu lebih cepat daripada /DEBUG:FULL
. Karena /DEBUG:FASTLINK
tidak lagi menyediakan peningkatan waktu build yang besar dan menghasilkan pengalaman debugging yang lebih lambat versus /DEBUG:FULL
, opsi ini tidak lagi direkomendasikan.
/DEBUG:FASTLINK
PDB dapat dikonversi ke PDB lengkap yang dapat Anda sebarkan ke mesin uji untuk penelusuran kesalahan lokal. Di Visual Studio, gunakan dialog Halaman Properti seperti yang dijelaskan di bawah ini untuk membuat PDB lengkap untuk proyek atau solusi. Dalam perintah pengembang, Anda dapat menggunakan mspdbcmf.exe
alat untuk membuat PDB lengkap.
Opsi ini /DEBUG:FULL
memindahkan semua informasi simbol privat dari produk kompilasi individual (file objek dan pustaka) ke dalam satu PDB, dan dapat menjadi bagian yang paling memakan waktu dari tautan. Namun, PDB lengkap dapat digunakan untuk men-debug executable ketika tidak ada produk build lain yang tersedia, seperti ketika executable disebarkan.
Opsi /DEBUG:NONE
ini tidak menghasilkan PDB.
Menentukan /DEBUG
tanpa argumen tambahan setara dengan menentukan /DEBUG:FULL
.
Opsi kompilator /Z7
(Kompatibel C7) menyebabkan pengkompilasi meninggalkan informasi penelusuran kesalahan dalam file objek (OBJ). Anda juga dapat menggunakan /Zi
opsi pengkompilasi (Database Program) untuk menyimpan informasi penelusuran kesalahan dalam PDB untuk file OBJ. Linker mencari PDB objek terlebih dahulu di jalur absolut yang ditulis dalam file OBJ, lalu di direktori yang berisi file OBJ. Anda tidak dapat menentukan nama file atau lokasi PDB objek ke linker.
/INCREMENTAL
tersirat ketika /DEBUG
ditentukan.
/DEBUG
mengubah default untuk /OPT
opsi dari REF
ke NOREF
dan dari ICF
ke NOICF
, jadi jika Anda menginginkan default asli, Anda harus secara eksplisit menentukan /OPT:REF
atau /OPT:ICF
setelah /DEBUG
opsi .
Tidak dimungkinkan untuk membuat EXE atau DLL yang berisi informasi debug. Informasi debug selalu ditempatkan dalam file OBJ atau PDB.
Untuk mengatur opsi linker ini di lingkungan pengembangan Visual Studio
Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.
Pilih halaman properti Debugging Linker>.
Ubah properti Buat Info Debug untuk mengaktifkan atau menonaktifkan pembuatan PDB. Properti ini diaktifkan
/DEBUG:FASTLINK
secara default di Visual Studio 2017 dan yang lebih baru.Ubah properti Buat File Database Program Lengkap untuk mengaktifkan
/DEBUG:FULL
pembuatan PDB penuh untuk setiap build bertahap.
Untuk menyetel opsi linker ini secara terprogram
- Lihat GenerateDebugInformation.