Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Jika aplikasi mode pengguna sudah berjalan, debugger dapat men-debugnya secara noninvasif. Dengan debugging noninvasif, Anda tidak memiliki banyak tindakan debugging. Namun, Anda dapat meminimalkan gangguan debugger dengan aplikasi target. Penelusuran kesalahan noninvasif berguna jika aplikasi target berhenti merespons.
Dalam penelusuran kesalahan noninvasif, debugger tidak benar-benar melekat pada aplikasi target. Debugger menangguhkan semua utas target dan memiliki akses ke memori target, register, dan informasi serupa lainnya. Namun, debugger tidak dapat mengontrol target, sehingga perintah seperti g (Go) tidak berfungsi.
Jika Anda mencoba menjalankan perintah yang tidak diizinkan selama penelusuran kesalahan noninvasif, Anda menerima pesan kesalahan yang menyatakan, "Debugger tidak dilampirkan, sehingga eksekusi proses tidak dapat dipantau."
Memilih Proses untuk Debug
Anda dapat menentukan aplikasi target dengan ID proses (PID) atau nama proses.
Jika Anda menentukan aplikasi berdasarkan nama, Anda harus menggunakan nama lengkap proses, termasuk ekstensi nama file. Jika dua proses memiliki nama yang sama, Anda harus menggunakan ID proses sebagai gantinya.
Untuk informasi selengkapnya tentang cara menentukan ID proses dan nama proses, lihat Menemukan ID Proses.
Untuk informasi tentang memulai dan menghentikan sesi penelusuran kesalahan noninvasif, lihat topik berikut:
- Men-debug Proses User-Mode Menggunakan WinDbg
- Melakukan debug pada sebuah proses User-Mode dengan CDB
Baris Perintah CDB
Untuk men-debug proses yang sedang berjalan secara noninvasif dari baris perintah CDB, tentukan opsi -pv, opsi -p, dan ID proses, dalam sintaks berikut.
cdb -pv -pProcessID
Atau, untuk men-debug proses yang sedang berjalan secara noninvasif dengan menentukan nama proses, gunakan sintaks berikut sebagai gantinya.
cdb -pv -pnProcessName
Ada beberapa opsi baris perintah lain yang berguna. Untuk informasi selengkapnya tentang sintaks baris perintah, lihat Opsi Command-Line CDB.
Baris Perintah WinDbg
Untuk men-debug proses yang sedang berjalan secara noninvasif dari baris perintah WinDbg, tentukan opsi -pv, opsi -p, dan ID proses, dalam sintaks berikut.
-pv windbg -pProcessID
Atau, untuk men-debug proses yang sedang berjalan secara noninvasif dengan menentukan nama proses, gunakan sintaks berikut sebagai gantinya.
-pv windbg -pnProcessName
Ada beberapa opsi baris perintah lain yang berguna. Untuk informasi selengkapnya tentang sintaks baris perintah, lihat Opsi Command-Line WinDbg.
WinDbg Menu
Ketika WinDbg dalam mode tidak aktif, Anda dapat secara noninvasif men-debug proses yang sedang berjalan dengan mengklik Lampirkan ke Proses pada menu File atau dengan menekan F6.
Saat kotak dialog Lampirkan ke Proses muncul, pilih kotak centang Noninvasif. Kemudian, pilih baris yang berisi ID proses dan nama yang Anda inginkan. (Anda juga dapat memasukkan ID proses dalam kotak ID Proses.) Terakhir, klik OK.
Jendela Perintah Debugger
Jika debugger sudah aktif, Anda dapat secara noninvasif men-debug proses yang sedang berjalan dengan menggunakan perintah .attach -v (Lampirkan ke Proses) di jendela Perintah Debugger .
Anda dapat menggunakan perintah .attach jika debugger sudah men-debug satu atau beberapa proses secara invasif. Anda dapat menggunakan perintah ini di CDB jika tidak aktif, tetapi tidak dalam WinDbg yang tidak aktif.
Jika perintah .attach -v berhasil, debugger akan men-debug proses yang ditentukan saat berikutnya debugger mengeluarkan perintah eksekusi. Karena eksekusi tidak diizinkan selama debugging noninvasif, debugger tidak dapat secara noninvasif men-debug lebih dari satu proses pada satu waktu. Pembatasan ini juga berarti bahwa menggunakan perintah .attach -v mungkin membuat sesi debugging invasif yang ada kurang berguna.
Memulai Sesi Debugging
Untuk informasi selengkapnya tentang cara memulai sesi debugging, lihat Operasi Debugger.