Aracılığıyla paylaş


Sanallaştırılmış COM Bağlantı Noktası Kullanarak Sanal Makinede Manuel Çekirdek Modunda Hata Ayıklamayı Ayarlama

Windows için Hata Ayıklama Araçları, bir sanal makinenin çekirdek hata ayıklamasını destekler. Sanal makine, hata ayıklayıcıyla aynı fiziksel bilgisayarda veya aynı ağa bağlı farklı bir bilgisayarda bulunabilir. Bu konuda, KDCOM aracılığıyla bir sanal COM Bağlantı Noktası kullanarak sanal makinede hata ayıklamanın el ile nasıl ayarlanacağı açıklanmaktadır.

KDNET sanal ağını kullanmak daha hızlı bir seçenektir ve önerilir. Daha fazla bilgi için bkz. KDNET ile Sanal Makinenin Ağ Hata Ayıklamasını Ayarlama.

Hedef Sanal Makineyi Ayarlama

Hata ayıklayıcısını çalıştıran bilgisayaraana bilgisayar adı verilir ve hata ayıklanan sanal makinehedef sanal makine olarak adlandırılır.

Önemli

Önyükleme bilgilerini değiştirmek için BCDEdit'i kullanmadan önce, test bilgisayarında BitLocker ve Güvenli Önyükleme gibi Windows güvenlik özelliklerini geçici olarak askıya almanız gerekebilir. Test tamamlandığında bu güvenlik özelliklerini yeniden etkinleştirin ve güvenlik özellikleri devre dışı bırakıldığında test bilgisayarını uygun şekilde yönetin.

  1. Sanal makinede, yükseltilmiş bir Komut İstemi penceresinde aşağıdaki komutları girin.

    bcdedit /debug on

    bcdedit /dbgsettings serial debugport:nbaudrate:115200

    burada n, sanal makinedeki com bağlantı noktasının sayısıdır.

  2. Sanal makinede, COM bağlantı noktasını adlandırılmış bir kanalla eş olacak şekilde yapılandırın. Hata ayıklayıcı bu boru üzerinden bağlanacak. Daha fazla bilgi için, bu kanalı nasıl oluşturacağınız konusunda sanal makinenizin belgelerine bakın.

  3. Hata ayıklayıcıyı yükseltilmiş modda, örneğin bir yönetici komut isteminden başlatın. Seri kanal üzerinden bir VM'de hata ayıklarken hata ayıklayıcı yükseltilmiş modda çalışıyor olmalıdır. Hata ayıklayıcı eklenip çalıştırıldıktan sonra hedef VM'yi yeniden başlatın.

WinDbg Kullanarak Hata Ayıklama Oturumunu Başlatma

Ana bilgisayarda WinDbg'yi Yönetici olarak açın. Seri kanal üzerinden bir VM'de hata ayıklarken hata ayıklayıcı yükseltilmiş modda çalışıyor olmalıdır. Dosya menüsünden Çekirdek Hata Ayıklama öğesini seçin. Çekirdek Hata Ayıklama iletişim kutusunda COM sekmesini açın. Boru kutusunu işaretleyin ve Yeniden Bağlan kutusunu işaretleyin. Baud Hızı için 115200 girin. Sıfırlamalar için 0 girin.

Hata ayıklayıcı sanal makineyle aynı bilgisayarda çalışıyorsa Bağlantı Noktasıiçin aşağıdakileri girin.

\\.\pipe\PipeName.

Hata ayıklayıcı sanal makineden farklı bir bilgisayarda çalışıyorsa Bağlantı Noktasıiçin aşağıdakileri girin.

\\ VMHost\pipe\PipeName

tamamseçin.

WinDbg'yi komut satırından da başlatabilirsiniz. Hata ayıklayıcı sanal makineyle aynı fiziksel bilgisayarda çalışıyorsa, Komut İstemi penceresine aşağıdaki komutu girin.

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

Hata ayıklayıcısı sanal makineden farklı bir fiziksel bilgisayarda çalışıyorsa, Komut İstemi penceresine aşağıdaki komutu girin.

windbg -k com:pipe,port=\\VMHost\pipe\PipeName,resets=0,yeniden bağlan

KD Kullanarak Hata Ayıklama Oturumunu Başlatma

Hata ayıklayıcısıyla aynı fiziksel bilgisayarda çalışan bir sanal makinede hata ayıklamak için, yükseltilmiş Komut İstemi penceresine aşağıdaki komutu girin.

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

Hata ayıklayıcıdan farklı bir fiziksel bilgisayarda çalışan bir sanal makinede hata ayıklamak için Komut İstemi penceresine aşağıdaki komutu girin.

kd -k com:pipe,port=\\VMHost\pipe\PipeName,resets=0,yeniden bağlan

Parametreler

VMHost
Sanal makinenin üzerinde çalıştığı bilgisayarın adını belirtir.

BoruAdı
Sanal makinede oluşturmuş olduğunuz boru hattının adını belirtir.

sıfırlamalar=0
Ana bilgisayar ve hedef senkronize edilirken hedefe sınırsız sayıda sıfırlama paketi gönderilebileceğini belirtir. Microsoft Virtual PC ve borular fazla baytları atan diğer sanal makineler için resets=0 parametresini kullanın. Bu parametreyi, fazladan baytları bırakmayan veri akışlarına sahip VMware veya diğer sanal makineler için kullanmayın.

yeniden bağlan
Okuma/yazma hatası oluşursa hata ayıklayıcının bağlantının otomatik olarak kesilmesine ve kanala yeniden bağlanmasına neden olur. Ayrıca, hata ayıklayıcı başlatıldığında hata ayıklayıcısı adlandırılmış kanalı bulamazsa, yeniden bağlanma parametresi hata ayıklayıcının PipeName adlı bir kanalı beklemesine neden olur. Sanal bilgisayar ve bilgisayar yeniden başlatma sırasında kanallarını silip yeniden oluşturan diğer sanal makineler için yeniden bağlanma kullanın. Bu parametreyi, bilgisayarın yeniden başlatılması sırasında kanalları koruyan VMware veya diğer sanal makineler için kullanmayın.

Ek komut satırı seçenekleri hakkında daha fazla bilgi için bkz. KD Command-Line Seçenekleri veya WinDbg Command-Line Seçenekleri.

2. Nesil Sanal Makineler

Varsayılan olarak, COM bağlantı noktaları 2. nesil sanal makinelerde sunulmaz. COM bağlantı noktalarını PowerShell veya WMI aracılığıyla ekleyebilirsiniz. COM bağlantı noktalarının Hyper-V Yöneticisi konsolunda görüntülenmesi için bunların bir yol ile oluşturulması gerekir.

2. nesil sanal makinede COM bağlantı noktası kullanarak çekirdek hata ayıklamasını etkinleştirmek için şu adımları izleyin:

  1. Bu PowerShell komutunu girerek Güvenli Önyükleme'yi devre dışı bırakın:

    Set-VMFirmware –VmnameVmName–EnableSecureBoot Off

    burada VmName sanal makinenizin adıdır.

  2. Şu PowerShell komutunu girerek sanal makineye bir COM bağlantı noktası ekleyin:

    Set-VMComPort –VMNameVmName1 \\.\pipe\PipeName

    Örneğin aşağıdaki komut, yerel bilgisayardaki adlandırılmış kanal TestPipe'e bağlanmak için TestVM sanal makinesindeki ilk COM bağlantı noktasını yapılandırıyor.

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

  3. Hata ayıklayıcı eklenip çalıştırıldıktan sonra, VM'deki COM bağlantı noktalarını etkinleştirmek için VM'yi durdurun ve soğuk başlatın. En az biri kanal adıyla gerçek anlamda yapılandırılmadıkça ve çalışırken eklenemediği sürece öykünmüş UART'lar hata ayıklama için kullanılamaz.

  4. Yapılandırma değişikliklerini güncelleştirmeyi tamamladıktan sonra güvenli önyüklemeyi yeniden etkinleştirin.

2. Nesil VM'ler hakkında daha fazla bilgi için bkz. 2. Nesil Sanal Makineye Genel Bakış.

Açıklamalar

Hedef bilgisayar yanıt vermeyi durdurduysa, daha önceki bir çekirdek hata ayıklama eylemi nedeniyle hedef bilgisayar hala durdurulur veya-bkomut satırı seçeneğini kullandıysanız, hata ayıklayıcı hedef bilgisayara hemen girer.

Aksi takdirde, hata ayıklayıcı durdurmasını söyleyene kadar hedef bilgisayar çalışmaya devam eder.

Güvenlik Duvarları ve Ağ Erişimi Sorunlarını Giderme

Hata ayıklayıcınızın (WinDbg veya KD) güvenlik duvarı üzerinden erişimi olmalıdır. Ağ bağdaştırıcıları tarafından desteklenen sanal seri bağlantı noktaları için bile bu durum söz konusu olabilir.

Hata ayıklayıcı yüklendiğinde Windows tarafından güvenlik duvarını kapatmanız istenirse üç kutuyu da seçin.

Kullanımdaki VM'nin özelliklerine bağlı olarak, sanal makinelerinizin ağ ayarlarını değiştirerek bunları Microsoft Çekirdek Ağ Hata Ayıklama Bağdaştırıcısı'na bağlamanız gerekebilir. Aksi takdirde, sanal makinelerin ağa erişimi olmaz.

Windows Güvenlik Duvarı

Windows güvenlik duvarı üzerinden erişime izin vermek için Denetim Masası'nı kullanabilirsiniz. Sistem ve Güvenlik > Denetim Masası'nı açın ve Bir uygulamaya Windows Güvenlik Duvarı üzerinden izin ver'i seçin. Uygulama listesinde Windows GUI Sembolik Hata Ayıklayıcısı ve Windows Çekirdek Hata Ayıklayıcısı'i bulun. Bu iki uygulamaya güvenlik duvarı üzerinden izin vermek için onay kutularını kullanın. Hata ayıklama uygulamanızı (WinDbg veya KD) yeniden başlatın.

Üçüncü Taraf VM'ler

VMware

VMware olanaklarını (örneğin, sıfırla düğmesi) kullanarak sanal makineyi yeniden başlatırsanız WinDbg'den çıkın ve hata ayıklamaya devam etmek için WinDbg'yi yeniden başlatın. Sanal makine hata ayıklaması sırasında VMware genellikle CPU'nun 100% tüketir.

Ayrıca bkz.

KDNET ile Sanal Makinenin Ağ Hata Ayıklamasını Ayarlama

El ile Hata Ayıklamayı Ayarlama Kernel-Mode

Sanal Makine Konağı İçin Ağ Hata Ayıklamayı Ayarlama