Bagikan melalui


Menggunakan KDbgCtrl

Alat KDbgCtrl (Kontrol Penelusuran Kesalahan Kernel, 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 Mode Pengguna, Pemblokiran Penelusuran Kesalahan 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 Boot untuk Mengaktifkan Penelusuran Kesalahan untuk detail tentang pengaturan boot 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 masuk ke debugger kernel jika pengecualian mode kernel tertembak. Pesan dari target ke host, seperti output DbgPrint , pesan beban 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 default. 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 Baris Perintah KDbgCtrl.

Penelusuran Kesalahan Kernel Otomatis

Jika Penelusuran Kesalahan Kernel Penuh diaktifkan, pengaturan saat ini untuk Debugging Kernel Otomatis tidak bersifat immaterial -- semua komunikasi diizinkan.

Ketika Debugging Kernel Penuh dinonaktifkan dan Debugging Kernel Otomatis diaktifkan, hanya komputer target yang dapat memulai koneksi penelusuran kesalahan.

Dalam hal ini, hanya pengecualian mode kernel, titik henti, atau peristiwa mode kernel lainnya yang akan menyebabkan koneksi dibuat. Koneksi tidak akan dibuat untuk output DbgPrint , pesan beban simbol, input dan output debugger mode pengguna yang dialihkan, atau pesan serupa lainnya -- 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 bersifat immaterial 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 Kesalahan Mode Pengguna

Ketika Penanganan Kesalahan Mode Pengguna diaktifkan, beberapa peristiwa mode pengguna akan menyebabkan komputer target masuk ke debugger kernel.

Secara khusus, semua gangguan int 3 -- seperti titik henti yang dimasukkan ke dalam kode oleh debugger atau panggilan ke DbgBreakPoint -- akan menyebabkan pemecahan 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 Mode Pengguna berfungsi, Penelusuran Kesalahan Kernel Penuh atau Debugging Kernel Otomatis juga harus diaktifkan.

Penanganan Kesalahan Mode Pengguna 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 penelusuran kesalahan 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

Saat Anda memulai ulang komputer target, komputer tersebut akan disiapkan untuk penelusuran kesalahan kernel, tetapi penelusuran kesalahan kernel dan Penanganan Kesalahan Mode Pengguna akan dinonaktifkan. Pada saat itu, komputer host tidak akan dapat melampirkan ke komputer target, pemeriksaan bug tidak akan ditangkap oleh debugger kernel, dan pengecualian mode pengguna tidak akan menyebabkan jeda 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 penelusuran kesalahan 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. Pada titik waktu selanjutnya, Anda dapat mengaktifkan penelusuran kesalahan kernel, menyambungkan 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 Baris Perintah 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 penelusuran kesalahan 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