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 Debugging untuk Windows mendukung debugging kernel mesin virtual. Komputer virtual dapat ditemukan di komputer fisik yang sama dengan debugger atau di komputer lain yang terhubung ke jaringan yang sama. Topik ini menjelaskan cara mengatur debugging mesin virtual secara manual menggunakan virtual COM Port melalui KDCOM.
Menggunakan jaringan virtual KDNET adalah opsi yang lebih cepat dan direkomendasikan. Untuk informasi selengkapnya, lihat Menyiapkan Pemecahan Masalah Jaringan Mesin Virtual dengan KDNET.
Menyiapkan Komputer Virtual Target
Komputer yang menjalankan debugger disebut komputer host , dan komputer virtual yang sedang di-debug disebut komputer virtual target .
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.
Di mesin virtual, di jendela Command Prompt dengan hak akses administratif, masukkan perintah berikut.
bcdedit /debug on
bcdedit /dbgsettings serial debugport:nbaudrate:115200
di mana n adalah jumlah port COM pada komputer virtual.
Di mesin virtual, konfigurasikan port COM untuk memetakan ke pipa bernama. Debugger akan terhubung melalui pipa ini. Untuk informasi selengkapnya tentang cara membuat pipa ini, lihat dokumentasi komputer virtual Anda.
Mulai debugger dalam mode dengan hak akses lebih tinggi, misalnya dari prompt perintah administrator. Debugger harus berjalan dalam mode yang ditingkatkan saat men-debug VM melalui pipa serial. Setelah debugger dilampirkan dan berjalan, boot ulang VM target.
Memulai Sesi Debugging Menggunakan WinDbg
Pada komputer host, buka WinDbg sebagai Administrator. Debugger harus berjalan dalam mode yang ditingkatkan saat men-debug VM melalui pipa serial. Pada menu File
Jika debugger berjalan pada komputer yang sama dengan komputer virtual, masukkan yang berikut ini untuk Port.
\\.\pipe\PipeName.
Jika debugger berjalan di komputer yang berbeda dari komputer virtual, masukkan yang berikut ini untuk Port.
\\ VMHost\pipe\PipeName
Pilih OK.
Anda juga dapat memulai WinDbg di baris perintah. Jika debugger berjalan pada komputer fisik yang sama dengan komputer virtual, masukkan perintah berikut di jendela Prompt Perintah.
windbg -k com:pipe,port=\\.\pipe\PipeName,resets=0,reconnect
Jika debugger berjalan di komputer fisik yang berbeda dari komputer virtual, masukkan perintah berikut di jendela Prompt Perintah.
windbg -k com:pipe,port=\\VMHost\pipe\PipeName,resets=0,sambungkan kembali
Memulai Sesi Debugging Menggunakan KD
Untuk men-debug komputer virtual yang berjalan di komputer fisik yang sama dengan debugger, masukkan perintah berikut di jendela Command Prompt yang ditinggikan.
kd -k com:pipe,port=\\.pipe\PipeName,resets=0,sambungkan kembali
Untuk men-debug komputer virtual yang berjalan di komputer fisik yang berbeda dari debugger, masukkan perintah berikut di jendela Prompt Perintah.
kd -k com:pipe,port=\\VMHost\pipe\PipeName,resets=0,sambungkan kembali
Parameter
VMHost
Menentukan nama komputer tempat komputer virtual dijalankan.
PipeName
Menentukan nama pipa yang Anda buat di komputer virtual.
resets=0
Menentukan bahwa jumlah paket reset yang tidak terbatas dapat dikirim ke target saat host dan target disinkronkan. Gunakan parameter resets=0 untuk Microsoft Virtual PC dan mesin virtual lainnya yang salurannya membuang byte berlebih. Jangan gunakan parameter ini untuk VMware atau komputer virtual lainnya yang pipanya tidak menghilangkan semua byte berlebih.
menyambungkan kembali
Menyebabkan debugger secara otomatis memutuskan sambungan dan menyambungkan kembali pipa jika kegagalan baca/tulis terjadi. Selain itu, jika debugger tidak menemukan pipa bernama saat debugger dimulai, parameter menyambungkan kembali menyebabkan debugger menunggu pipa yang diberi nama PipeName muncul. Gunakan reconnect untuk PC Virtual dan komputer virtual lainnya yang menghapus dan membuat ulang pipa mereka saat komputer dihidupkan ulang. Jangan gunakan parameter ini untuk VMware atau komputer virtual lain yang mempertahankan pipa mereka selama komputer dimulai ulang.
Untuk informasi selengkapnya tentang opsi baris perintah tambahan, lihat Opsi Command-Line KD atau Opsi Command-Line WinDbg .
Komputer Virtual Generasi 2
Secara default, port COM tidak disajikan dalam komputer virtual generasi 2. Anda dapat menambahkan port COM melalui PowerShell atau WMI. Agar port COM ditampilkan di konsol Hyper-V Manager, port COM harus dibuat dengan menyertakan jalur.
Untuk mengaktifkan penelusuran kesalahan kernel menggunakan port COM pada komputer virtual generasi 2, ikuti langkah-langkah berikut:
Nonaktifkan Boot Aman dengan memasukkan perintah PowerShell ini:
Set-VMFirmware –VmnameVmName–EnableSecureBoot Off
di mana VmName adalah nama komputer virtual Anda.
Tambahkan port COM ke komputer virtual dengan memasukkan perintah PowerShell ini:
Set-VMComPort –VMNameVmName1 \\.\pipe\PipeName
Misalnya, perintah berikut mengonfigurasi port COM pertama pada mesin virtual TestVM untuk menyambungkan ke pipa bernama TestPipe di komputer lokal.
Set-VMComPort –VMName TestVM 1 \\.\pipe\TestPipe
Setelah debugger terpasang dan berjalan, hentikan dan mulai ulang VM untuk mengaktifkan port COM di VM. UART yang disimulasikan tidak tersedia untuk penelusuran kesalahan kecuali setidaknya satu dikonfigurasi dengan pipe name dan tidak dapat ditambahkan secara dinamis.
Aktifkan kembali boot aman, setelah Anda selesai memperbarui perubahan konfigurasi.
Untuk informasi selengkapnya tentang VM Generasi 2, lihat Gambaran Umum Komputer Virtual Generasi 2.
Komentar
Jika komputer target berhenti merespons, komputer target masih dihentikan karena tindakan penelusuran kesalahan kernel sebelumnya, atau Anda menggunakan opsi baris perintah -b, debugger segera masuk ke komputer target.
Jika tidak, komputer target terus berjalan sampai debugger memerintahkannya untuk menghentikan sementara.
Pemecahan Masalah Firewall dan Akses Jaringan
Debugger Anda (WinDbg atau KD) harus memiliki akses melalui firewall. Ini bahkan dapat terjadi untuk port serial virtual yang didukung oleh adaptor jaringan.
Jika Anda diminta oleh Windows untuk menonaktifkan firewall saat debugger dimuat, pilih ketiga kotak.
Bergantung pada spesifikasi VM yang digunakan, Anda mungkin perlu mengubah pengaturan jaringan untuk komputer virtual Anda untuk menjembataninya ke Adaptor Debug Jaringan Microsoft Kernel. Jika tidak, komputer virtual tidak akan memiliki akses ke jaringan.
Windows Firewall
Anda dapat menggunakan Panel Kontrol untuk mengizinkan akses melalui firewall Windows. Buka Panel Kontrol > Sistem dan Keamanan, dan pilih Izinkan aplikasi melalui Windows Firewall. Dalam daftar aplikasi, temukan Windows GUI Symbolic Debugger dan Windows Kernel Debugger. Gunakan kotak centang untuk mengizinkan kedua aplikasi tersebut melalui firewall. Mulai ulang aplikasi debugging Anda (WinDbg atau KD).
VM Pihak Ketiga
VMware
Jika Anda memulai ulang komputer virtual dengan menggunakan fasilitas VMware (misalnya, tombol reset), keluar dari WinDbg, lalu mulai ulang WinDbg untuk melanjutkan penelusuran kesalahan. Selama debug mesin virtual, VMware sering mengonsumsi 100% dari CPU.
Lihat juga
Menyiapkan Debugging Jaringan Komputer Virtual dengan KDNET