Debugging Mode Kernel Langsung Menggunakan WinDbg (Klasik)
Ada dua cara untuk 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 Debugging Kernel muncul, klik tab yang sesuai: NET, COM, USB, atau Lokal. Setiap tab menentukan metode koneksi yang berbeda.
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 Baris Perintah WinDbg.
Variabel Lingkungan
Untuk penelusuran kesalahan melalui serial (port COM), 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 berkomunikasi hanya dengan instans debugger ini. Ini memungkinkan Anda 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 untuk 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 komputer PC target. Untuk menggunakan nama komputer, sistem DNS pada jaringan harus memiliki nama mesin yang terkait dengan alamat IP PC target.
USBString
STRING KONEKSI USB. Ini harus cocok dengan string yang ditentukan dengan opsi boot /targetname. Untuk informasi selengkapnya, lihat Menyiapkan debugging mode kernel USB 3.0 xHCI-DBC (KDUSB).
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
Laju 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 Mode Kernel Lokal.
Parameter versi sebelumnya
Penting
Transportasi 1394 tersedia untuk digunakan di Windows 10, versi 1607 dan yang lebih lama. Ini tidak tersedia di versi Windows yang lebih baru. Anda harus transisi proyek Anda ke transportasi lain, seperti KDNET menggunakan Ethernet. Untuk informasi selengkapnya tentang transportasi tersebut, lihat Menyiapkan Penelusuran Kesalahan Kernel Jaringan KDNET Secara Otomatis.
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 bergantung pada port fisik 1394 yang dipilih pada adaptor.
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.
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