Bagikan melalui


Penelusuran Kesalahan Kernel-Mode Langsung Menggunakan WinDbg (Klasik)

Ada dua cara Anda dapat menggunakan WinDbg untuk memulai sesi debugging mode kernel langsung.

WinDbg Menu

Ketika WinDbg dalam mode tidak aktif, Anda dapat memulai sesi debugging kernel dengan memilih Kernel Debug dari menu File atau dengan menekan CTRL+K. Saat kotak dialog Penelusuran Kesalahan Kernel muncul, klik tab yang sesuai: NET, 1394, USB, COM, atau Lokal. Setiap tab menentukan metode koneksi yang berbeda.

Prompt Perintah

Di jendela Prompt Perintah, Anda dapat memulai sesi debugging mode kernel saat meluncurkan WinDbg. Masukkan salah satu perintah berikut:

windbg [-y SymbolPath] -k net:port=PortNumber,key=Key[,target=TargetIPAddress|TargetMachineName]

windbg [-y SymbolPath] -k usb:targetname=USBString

windbg [-y SymbolPath] -k com:port=ComPort,baud=BaudRate

windbg [-y SymbolPath] -k com:ipport=SerialTcpIpPort,port=SerialIPAddress

windbg [-y SymbolPath] -k com:pipe,port=\\VMHost\pipe\PipeName[,resets=0][,reconnect]

windbg [-y SymbolPath] -k com:modem

windbg [-y SymbolPath] -kl

windbg [-y SymbolPath] -k

Untuk informasi selengkapnya, lihat Opsi Command-Line WinDbg.

Variabel Lingkungan

Untuk penelusuran kesalahan melalui serial (port COM) atau koneksi 1394, Anda dapat menggunakan variabel lingkungan untuk menentukan pengaturan koneksi.

Gunakan variabel berikut untuk menentukan koneksi serial.

set _NT_DEBUG_PORT = ComPort

set _NT_DEBUG_BAUD_RATE = BaudRate

Untuk informasi selengkapnya, lihat Variabel Lingkungan Mode Kernel.

Parameter

SymbolPath
Daftar direktori tempat file simbol berada. Direktori dalam daftar dipisahkan oleh titik koma. Untuk informasi selengkapnya, lihat Jalur Simbol.

PortNumber
Nomor port yang digunakan untuk penelusuran kesalahan jaringan. Anda dapat memilih nomor apa pun dari 49152 hingga 65535. Untuk informasi selengkapnya, lihat Menyiapkan Koneksi Jaringan Secara Manual.

Kunci
Kunci enkripsi yang digunakan untuk penelusuran kesalahan jaringan. Kami menyarankan agar Anda menggunakan kunci yang dihasilkan secara otomatis, yang disediakan oleh bcdedit saat Anda mengonfigurasi komputer target. Untuk informasi selengkapnya, lihat Menyiapkan Koneksi Jaringan Secara Manual.

TargetIPAddress
Alamat IPv4 dari komputer target.

Ketika target= alamat IP ditentukan, ini menyebabkan debugger memulai koneksi ke komputer target yang ditentukan, dengan mengirim paket khusus ke target, yang akan menyebabkannya mencoba terhubung dengan debugger tersebut. Debugger akan mengirim paket ke target berulang kali sekitar setiap setengah detik, mencoba untuk terhubung. Jika koneksi berhasil, target akan menghilangkan koneksi yang ada, dan hanya berkomunikasi dengan instans debugger ini. Ini memungkinkan Anda untuk mengontrol sesi penelusuran kesalahan dari koneksi penelusuran kesalahan yang ada.

Ketika target dikonfigurasi dengan alamat IP host, dan debugger sedang dijalankan pada komputer dengan alamat IP host yang dikonfigurasi, tidak perlu menentukan parameter target= alamat IP. Ketika target dikonfigurasi dengan alamat IP host, target akan mengirim paket OFFER ke host setiap tiga detik. Paket OFFER memungkinkan debugger terhubung ke host ketika tidak ada target= alamat IP yang ditentukan.

Untuk informasi selengkapnya tentang mengonfigurasi alamat IP host pada target, lihat Menyiapkan Penelusuran Kesalahan Kernel Jaringan KDNET Secara Otomatis dan Menyiapkan Debugging Kernel Jaringan KDNET Secara Manual.

TargetMachineName
Nama mesin PC target. Untuk menggunakan nama komputer, sistem DNS pada jaringan harus memiliki nama komputer yang terkait dengan alamat IP PC target.

1394Channel
Nomor saluran 1394. Nomor saluran yang valid adalah bilangan bulat antara 0 dan 62, inklusif. 1394Channel harus cocok dengan nomor yang digunakan oleh komputer target, tetapi tidak tergantung pada port fisik 1394 yang dipilih pada adaptor. Untuk informasi selengkapnya, lihat Menyiapkan Koneksi 1394 Secara Manual.

1394Protocol
Protokol koneksi yang akan digunakan untuk koneksi kernel 1394. Ini hampir selalu dapat dihilangkan, karena debugger akan secara otomatis memilih protokol yang benar. Jika Anda ingin mengatur ini secara manual, dan komputer target menjalankan Windows XP, 1394Protocol harus diatur sama dengan "saluran". Jika komputer target menjalankan Windows Server 2003 atau yang lebih baru, 1394Protocol harus diatur sama dengan "instans". Jika dihilangkan, debugger akan default ke protokol yang sesuai untuk komputer target saat ini. Ini hanya dapat ditentukan melalui baris perintah atau variabel lingkungan, bukan melalui antarmuka grafis WinDbg.

UsbString
String koneksi USB. Ini harus cocok dengan string yang ditentukan dengan opsi boot /targetname. Untuk informasi selengkapnya, lihat Menyiapkan Koneksi USB 3.0 Secara Manual dan Menyiapkan Koneksi USB 2.0 Secara Manual.

ComPort
Nama port COM. Ini bisa dalam format "com2" atau dalam format "\\.\com2", tetapi seharusnya bukan sekadar angka. Untuk informasi selengkapnya, lihat Menyiapkan Koneksi Serial Secara Manual.

BaudRate
Tingkat baud. Ini bisa 9600, 19200, 38400, 57600, atau 115200.

SerialTcpIpPort
Port IP TCP target dari port COM serial yang ditiru.

SerialIPAddress
Alamat IP TCP target dari port COM serial yang ditiru.

VMHost
Saat men-debug komputer virtual, VMHost menentukan nama komputer fisik tempat komputer virtual berjalan. Jika komputer virtual berjalan pada komputer yang sama dengan debugger kernel itu sendiri, gunakan satu periode (.) untuk VMHost. Untuk informasi selengkapnya, lihat Menyiapkan Koneksi ke Komputer Virtual.

PipeName
Nama pipa yang dibuat oleh komputer virtual untuk koneksi penelusuran kesalahan.

resets=0
Menentukan bahwa jumlah paket reset yang tidak terbatas dapat dikirim ke target saat host dan target disinkronkan. Parameter ini hanya diperlukan saat men-debug jenis komputer virtual tertentu.

sambungkan kembali
Menyebabkan debugger secara otomatis memutuskan sambungan dan menyambungkan kembali pipa jika kegagalan baca/tulis terjadi. Selain itu, jika pipa bernama tidak ditemukan ketika debugger dimulai, parameter koneksi ulang akan menyebabkannya menunggu pipa nama ini muncul. Parameter ini hanya diperlukan saat men-debug jenis komputer virtual tertentu.

-Kl
Menyebabkan debugger melakukan penelusuran kesalahan mode kernel lokal. Untuk informasi selengkapnya, lihat Penelusuran Kesalahan Kernel-Mode Lokal.

Contoh

File batch berikut dapat digunakan untuk menyiapkan dan memulai sesi penelusuran kesalahan melalui koneksi port COM.

set _NT_SYMBOL_PATH=d:\mysymbols
set _NT_DEBUG_PORT=com1
set _NT_DEBUG_BAUD_RATE=115200
set _NT_DEBUG_LOG_FILE_OPEN=d:\debuggers\logfile1.log
windbg -k

Baris perintah berikut dapat digunakan untuk memulai WinDbg tanpa variabel lingkungan apa pun.

windbg -y d:\mysymbols -k com:port=com2,baud=57600

windbg -y d:\mysymbols -k com:port=\\.\com2,baud=115200

windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey

windbg -y d:\mysymbols -k net:port=50000,key=AutoGeneratedKey,target=TargetIPAddress

Lihat juga

Opsi Command-Line WinDbg

Variabel Lingkungan Mode Kernel