Bagikan melalui


/DEBUG (Hasilkan info debug)

Opsi /DEBUG linker membuat file informasi penelusuran kesalahan untuk file yang dapat dieksekusi.

Sintaks

/DEBUG[:{FASTLINK||FULLNONE}]

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

  1. Buka kotak dialog Halaman Properti proyek. Untuk detailnya, lihat Mengatur pengkompilasi C++ dan membuat properti di Visual Studio.

  2. Pilih halaman properti Debugging Linker>.

  3. 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.

  4. 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

  1. Lihat GenerateDebugInformation.

Lihat juga

Referensi linker MSVC
Opsi linker MSVC