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.
Alat KDbgCtrl (Kernel Debugging Control, kdbgctrl.exe) dapat digunakan untuk mengontrol koneksi debugging kernel dari komputer target.
Untuk menggunakan alat ini, komputer target Anda harus menjalankan Windows Server 2003 atau versi Windows yang lebih baru.
KDbgCtrl dapat mengontrol lima pengaturan berbeda: Penelusuran Kesalahan Kernel Penuh, Penelusuran Kesalahan Kernel Otomatis, penanganan kesalahan User-Mode, Pemblokiran Debugging Kernel, dan ukuran buffer DbgPrint.
Untuk menggunakan KDbgCtrl, Anda harus sudah mengaktifkan penelusuran kesalahan kernel di pengaturan boot komputer target sebelum boot terakhir. KDbgCtrl tidak dapat digunakan untuk mengaktifkan penelusuran kesalahan kernel jika ini tidak dilakukan. Lihat Parameter Booting untuk Mengaktifkan Penelusuran Kesalahan untuk detail tentang pengaturan booting ini.
Penelusuran Kesalahan Kernel Penuh
Ketika Debugging Kernel Penuh diaktifkan, debugger kernel yang berjalan di komputer host dapat masuk ke komputer target. Komputer target akan memicu debugger kernel jika terkena pengecualian mode kernel. Pesan dari target ke host, seperti output DbgPrint, pesan pemuatan simbol, dan debugger mode pengguna yang dialihkan, juga diizinkan.
Jika pengaturan ini dinonaktifkan, semua sinyal dari komputer host akan diabaikan oleh target.
Penelusuran Kesalahan Kernel Penuh diaktifkan secara bawaan. Untuk memeriksa nilai pengaturan saat ini, gunakan kdbgctrl -c. Untuk menonaktifkan pengaturan ini, gunakan kdbgctrl -d. Untuk mengaktifkan pengaturan ini, gunakan kdbgctrl -e.
Jika Anda ingin memeriksa pengaturan saat ini dan menggunakannya untuk mengontrol eksekusi dalam file batch, Anda dapat menggunakan perintah kdbgctrl -cx . Untuk detail tentang perintah ini, lihat Opsi Command-Line KDbgCtrl.
Penelusuran Kesalahan Kernel Otomatis
Jika Penelusuran Kesalahan Kernel Penuh diaktifkan, pengaturan saat ini untuk Debugging Kernel Otomatis tidak relevan -- semua komunikasi diizinkan.
Ketika Debugging Kernel Penuh dinonaktifkan dan Debugging Kernel Otomatis diaktifkan, hanya komputer target yang dapat memulai koneksi debugging.
Dalam hal ini, hanya pengecualian mode kernel, titik henti, atau peristiwa mode kernel lainnya yang akan menyebabkan terjalinnya koneksi. Koneksi tidak akan dibuat untuk output DbgPrint, pesan pemuatan simbol, input dan output yang diarahkan ulang dari debugger mode pengguna, atau pesan serupa lainnya -- pesan-pesan ini akan disimpan dalam buffer DbgPrint alih-alih dikirim ke debugger kernel.
Jika pengecualian atau peristiwa menyebabkan target masuk ke debugger kernel, maka Debugging Kernel Penuh akan diaktifkan secara otomatis, sama seperti jika Anda telah menjalankan kdbgctrl -e.
Debugging Kernel Otomatis dinonaktifkan secara default (meskipun ini tidak relevan kecuali Debugging Kernel Penuh juga dinonaktifkan). Untuk memeriksa nilai pengaturan saat ini, gunakan kdbgctrl -ca. Untuk menonaktifkan pengaturan ini, gunakan kdbgctrl -da. Untuk mengaktifkan pengaturan ini, gunakan kdbgctrl -ea.
Penanganan KesalahanUser-Mode
Ketika Penanganan Kesalahan User-Mode diaktifkan, beberapa peristiwa mode pengguna akan menyebabkan komputer target memasuki debugger kernel.
Secara khusus, semua gangguan int 3 -- seperti titik henti yang dimasukkan ke dalam kode oleh debugger atau panggilan ke DbgBreakPoint -- akan menyebabkan penghentian ke debugger kernel. Namun, pengecualian standar -- seperti pelanggaran akses dan pembagian dengan nol -- biasanya tidak akan dikirim ke debugger kernel.
Jika debugger mode pengguna sudah dilampirkan ke proses, debugger ini akan menangkap semua kesalahan mode pengguna, dan debugger kernel tidak akan diubah. Untuk peringkat prioritas berbagai penangan kesalahan mode pengguna, lihat Mengaktifkan Debugging Postmortem.
Agar penanganan kesalahan User-Mode berfungsi, Debugging Kernel Penuh atau Debugging Kernel Otomatis juga harus diaktifkan.
User-Mode Penanganan Kesalahan diaktifkan secara default. Untuk memeriksa nilai pengaturan saat ini, gunakan kdbgctrl -cu. Untuk menonaktifkan pengaturan ini, gunakan kdbgctrl -du. Untuk mengaktifkan pengaturan ini, gunakan kdbgctrl -eu.
Memblokir Penelusuran Kesalahan Kernel
Dalam beberapa kasus, Anda mungkin ingin menyiapkan komputer target untuk penelusuran kesalahan kernel, tetapi tunggu untuk mengaktifkan penelusuran kesalahan kernel hingga setelah komputer target dimulai. Anda dapat melakukannya dengan memblokir debugging kernel.
Penting
Sebelum menggunakan BCDEdit untuk mengubah informasi boot, Anda mungkin perlu menangguhkan sementara fitur keamanan Windows seperti BitLocker dan Boot Aman pada PC pengujian. Aktifkan kembali fitur keamanan ini saat pengujian selesai dan kelola PC pengujian dengan tepat, saat fitur keamanan dinonaktifkan.
Untuk memblokir penelusuran kesalahan kernel, siapkan komputer target dengan menggunakan perintah yang mirip dengan yang berikut ini:
bcdedit /debug on
bcdedit /dbgsettings 1394 channel:32 /start DISABLE /noumex
Ketika Anda menghidupkan ulang komputer target, komputer tersebut akan disiapkan untuk penelusuran kesalahan kernel, tetapi penelusuran kesalahan kernel dan penanganan kesalahan User-Mode akan dinonaktifkan. Pada saat itu, komputer host tidak akan dapat terhubung ke komputer target, pemeriksaan bug tidak akan ditangkap oleh debugger kernel, dan pengecualian mode pengguna tidak akan menyebabkan menghentikan proses ke debugger kernel.
Setelah siap, Anda dapat mengaktifkan penelusuran kesalahan kernel (tanpa memulai ulang komputer target) dengan memasukkan perintah berikut.
kdbgctrl -db
kdbgctrl -e
Nantinya, Anda dapat menonaktifkan penelusuran kesalahan kernel dengan memasukkan perintah berikut.
kdbgctrl -d
kdbgctrl -eb
Anda dapat menggunakan kdbgctrl -cb untuk memeriksa apakah debugging kernel diblokir.
Ukuran Buffer DbgPrint
Buffer DbgPrint menyimpan pesan yang telah dikirim komputer target ke debugger kernel.
Jika Penelusuran Kesalahan Kernel Penuh diaktifkan, pesan ini akan secara otomatis muncul di debugger kernel. Tetapi jika opsi ini dinonaktifkan, pesan ini akan disimpan di buffer. Kemudian, Anda dapat mengaktifkan debug kernel, terhubung ke debugger kernel, dan menggunakan ekstensi !dbgprint untuk melihat konten buffer ini. Untuk informasi selengkapnya tentang buffer ini, lihat Buffer DbgPrint.
Ukuran default buffer DbgPrint adalah 4 KB pada build Windows gratis. Untuk menentukan ukuran buffer saat ini, gunakan kdbgctrl -cdb. Untuk mengubah ukuran buffer, gunakan kdbgctrl -sdbSize, di mana Ukuran menentukan ukuran buffer baru. Untuk detail sintaks, lihat Opsi Command-Line KDbgCtrl.
Contoh
Untuk menampilkan semua pengaturan saat ini, gunakan perintah berikut:
kdbgctrl -c -ca -cu -cb -cdb
Untuk memulihkan pengaturan default, gunakan perintah berikut:
kdbgctrl -e -da -eu -db -sdb 0x1000
Untuk mengunci komputer host sehingga hanya dihubungi pada pengecualian, gunakan perintah berikut:
kdbgctrl -d -ea -eu
Untuk menonaktifkan semua penelusuran kesalahan kernel, gunakan perintah berikut:
kdbgctrl -d -da
Jika Anda menonaktifkan semua debugging kernel, Anda mungkin juga ingin meningkatkan ukuran buffer DbgPrint. Ini memastikan bahwa semua pesan akan disimpan jika Anda perlu melihatnya nanti. Jika Anda memiliki megabyte memori untuk cadangan, Anda mungkin menggunakan perintah berikut:
kdbgctrl -sdb 0x100000