Bagikan melalui


Menyiapkan Debugging Mode Kernel komputer virtual secara manual menggunakan Port COM Virtual

Alat Penelusuran Kesalahan untuk Windows mendukung penelusuran kesalahan kernel komputer 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 menyiapkan penelusuran kesalahan komputer virtual secara manual menggunakan Port COM virtual melalui KDCOM.

Menggunakan jaringan virtual KDNET adalah opsi yang lebih cepat dan direkomendasikan. Untuk informasi selengkapnya, lihat Menyiapkan Penelusuran Kesalahan Jaringan Komputer 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.

  1. Di komputer virtual, di jendela Prompt Perintah yang ditingkatkan, masukkan perintah berikut.

    bcdedit /debug aktif

    bcdedit /dbgsettings serial debugport:n baudrate:115200

    di mana n adalah jumlah port COM pada komputer virtual.

  2. Di komputer 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.

  3. Mulai debugger dalam mode yang ditinggikan, 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 , pilih Debug Kernel. Dalam kotak dialog Penelusuran Kesalahan Kernel, buka tab COM . Centang kotak Pipa , dan centang kotak Sambungkan Ulang. Untuk Baud Rate, masukkan 115200. Untuk Reset, masukkan 0.

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,reconnect

Memulai Sesi Penelusuran Kesalahan Menggunakan KD

Untuk men-debug komputer virtual yang berjalan di komputer fisik yang sama dengan debugger, masukkan perintah berikut di jendela Prompt Perintah yang ditinggikan .

kd -k com:pipe,port=\\.\pipe\PipeName,resets=0,reconnect

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,reconnect

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 komputer virtual lainnya yang pipanya menghilangkan byte berlebih. Jangan gunakan parameter ini untuk VMware atau komputer virtual lainnya yang pipanya tidak menghilangkan semua byte berlebih.

sambungkan 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 sambungkan kembali menyebabkan debugger menunggu pipa yang bernama PipeName muncul. Gunakan koneksi ulang untuk PC Virtual dan komputer virtual lainnya yang menghancurkan dan membuat ulang pipa mereka selama komputer dimulai 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 Baris Perintah KD atau Opsi Baris Perintah 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 jalur.

Untuk mengaktifkan penelusuran kesalahan kernel menggunakan port COM pada komputer virtual generasi 2, ikuti langkah-langkah berikut:

  1. Nonaktifkan Boot Aman dengan memasukkan perintah PowerShell ini:

    Set-VMFirmware –Vmname VmName –EnableSecureBoot Off

    di mana VmName adalah nama komputer virtual Anda.

  2. Tambahkan port COM ke komputer virtual dengan memasukkan perintah PowerShell ini:

    Set-VMComPort –VMName VmName 1 \\.\pipe\PipeName

    Misalnya, perintah berikut mengonfigurasi port COM pertama pada komputer virtual TestVM untuk menyambungkan ke TestPipe pipa bernama di komputer lokal.

    Set-VMComPort –VMName TestVM 1 \\.\pipe\TestPipe

  3. Setelah debugger terpasang dan berjalan, hentikan dan dingin mulai VM untuk mengaktifkan port COM di VM. UARTS yang ditiru tidak tersedia untuk penelusuran kesalahan kecuali setidaknya satu benar-benar dikonfigurasi dengan nama pipa dan tidak dapat ditambahkan dengan panas.

  4. 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 istirahat.

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 penelusuran kesalahan Anda (WinDbg atau KD).

VM Pihak Ketiga

VMWare Jika Anda menghidupkan ulang komputer virtual dengan menggunakan fasilitas VMWare (misalnya, tombol reset), keluar dari WinDbg, lalu mulai ulang WinDbg untuk melanjutkan penelusuran kesalahan. Selama penelusuran kesalahan komputer virtual, VMWare sering mengonsumsi 100% CPU.

Lihat juga

Menyiapkan Penelusuran Kesalahan Jaringan Komputer Virtual dengan KDNET

Menyiapkan Penelusuran Kesalahan Mode Kernel Secara Manual

Menyiapkan Penelusuran Kesalahan Jaringan Host Komputer Virtual