Einrichten des Netzwerk-Debugging eines virtuellen Computers – KDNET

In diesem Thema wird beschrieben, wie Sie eine Kerneldebuggingverbindung mit einem virtuellen Hyper-V-Computer (VM) konfigurieren.

Einrichtung eines virtuellen Hyper-V-Computers

Führen Sie die folgenden Schritte aus, um einen virtuellen Hyper-V-Computer (VM) der 2. Generation zu debuggen.

1. Erstellen eines VM mit installiertem Windows

Informationen zum Erstellen eines virtuellen Computers finden Sie unter Erstellen eines virtuellen Computers mit Hyper-V.

2. Definieren eines virtuellen Switches

Um mit dem virtuellen Computer zu kommunizieren, kann ein virtueller externer Netzwerkswitch verwendet werden. Informationen zum Erstellen eines externen Netzwerk-Switches finden Sie unter Erstellen eines virtuellen Netzwerks.

Wenn der externe Netzwerkswitch konfiguriert ist, müssen die folgenden Optionen festgelegt werden.

Option Wert
Verbindungstyp Externes Netzwerk
Gemeinsames Verwenden dieses Netzwerkadapters für das Verwaltungsbetriebssystem zulassen Enabled
VLAN-ID Deaktiviert

3. Deaktivieren Wie Secure Boot

Damit das kdnet-Hilfsprogramm BCDEdit-Starteinstellungen aktualisieren kann, deaktivieren Sie vorübergehend den sicheren Start auf dem virtuellen Computer, indem Sie die folgenden Schritte ausführen.

  1. Laden Sie den Hyper-V-Manager, und wählen Sie die Eigenschaften für Ihren virtuellen Computer aus.

  2. Wählen Sie die Sicherheitseinstellungen.

  3. Deaktivieren Sie das Kontrollkästchen Sicherer Start aktivieren.

  4. Wählen Sie OK, um die Einstellungen zu speichern.

Sie können Secure Boot wieder aktivieren, sobald Sie mit dem Debuggen fertig sind und das Kernel-Debugging auf der Ziel-VM deaktiviert haben.

4. Installieren der Debugging-Tools für Windows

Die Debugtools werden für den Debugger und das kdnet-Dienstprogramm verwendet und müssen installiert werden. Informationen zum Herunterladen und Installieren der Debugging-Tools finden Sie unter Debugging-Tools für Windows.

Einrichten des Netzwerk-Debugging eines virtuellen Computers – KDNET

Aufzeichnen der Host-IP-Adresse

Führen Sie die folgenden Schritte aus, um den Hostdebugger auf demselben PC wie der virtuelle Zielcomputer auszuführen.

  1. Öffnen Sie im Hostcomputerbetriebssystem ein Eingabeaufforderungsfenster, und geben Sie IPConfig ein, um die IP-Konfiguration anzuzeigen.

  2. Suchen Sie in der Befehlsausgabe den Ethernet-Adapter, den Sie als externen virtuellen Switch konfiguriert haben.

    ...
    
    Ethernet adapter vEthernet (External Virtual Switch):
    
    ...
    
    IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
    
    ...
    
    

Tipp

Möglicherweise gibt es mehrere Adaptereinträge mit ähnlichen Namen. Stellen Sie sicher, und suchen Sie den virtuellen Switch, den Sie erstellt haben.

  1. Notieren Sie die IPv4-Adresse des externen virtuellen Switchs, der als Hostadresse für das Debuggen verwendet wird.

  2. Um die Konnektivität zwischen dem Ziel- und dem Hostcomputer zu bestätigen, öffnen Sie ein Eingabeaufforderungsfenster mit erhöhten Rechten auf dem Zielcomputer, und geben Sie den folgenden Befehl ein, wobei YourHostIPAddress die IP-Adresse des Hostcomputers ist.

    ping -4 <YourHostIPAddress>
    

Einrichten des VM-Zielcomputers

Verwenden Sie das Dienstprogramm kdnet.exe, um die Debuggereinstellungen automatisch auf dem Ziel-PC für 2PF zu konfigurieren, indem Sie die folgenden Schritte ausführen.

  1. Suchen Sie die WDK-Dateien kdnet.exe und VerifiedNICList.xml. Standardmäßig befinden sie sich hier.
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64

Hinweis

Bei diesen Anweisungen wird davon ausgegangen, dass beide PCs sowohl auf dem Ziel als auch auf dem Host eine 64-Bit-Version von Windows ausführen. Wenn dies nicht der Fall ist, besteht der beste Ansatz darin, die gleiche Bitanzahl von Tools auf dem Host auszuführen, den das Ziel ausführt. Wenn das Ziel beispielsweise 32-Bit-Windows ausführt, führen Sie eine 32-Version des Debuggers auf dem Host aus. Weitere Informationen finden Sie unter Auswahl der 32-Bit- oder 64-Bit-Debugging-Tools.

  1. Aktivieren Sie die erweiterte Sitzungsunterstützung, um die lange Taste zuzulassen, die zum Ausschneiden und Einfügen verwendet wird. Aktivieren Sie im VM-Fenster im Pulldown-Menü Ansicht die Option Erweiterter Sitzung.

  2. Erstellen Sie auf dem Ziel-VM-Computer ein Verzeichnis C:\KDNET und kopieren Sie die Dateien kdnet.exe und VerifiedNICList.xml in dieses Verzeichnis.

  3. Öffnen Sie auf dem Zielcomputer ein Eingabeaufforderungsfenster als Administrator. Geben Sie diesen Befehl ein, um zu überprüfen, ob der Zielcomputer über einen unterstützten Netzwerkadapter verfügt.

    C:\KDNET>kdnet
    
    Network debugging is supported on the following NICs:
    busparams=0.25.0, Intel(R) 82579LM Gigabit Network Connection, KDNET is running on this NIC.kdnet.exe
    
  4. Geben Sie diesen Befehl ein, um die IP-Adresse des Hostsystems festzulegen und einen eindeutigen Verbindungsschlüssel zu generieren. Verwenden Sie die IP-Adresse des Zuvor aufgezeichneten Hostsystems. Wählen Sie eine eindeutige Portadresse für jedes Ziel-/Hostpaar aus, mit dem Sie arbeiten, innerhalb des Bereichs von 50000-50039. In diesem Beispiel wählen wir 50005.

    C:\>kdnet <YourIPAddress> <YourDebugPort> 
    
    Enabling network debugging on Microsoft Hypervisor Virtual Machine.
    Key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7
    
    To debug this vm, run the following command on your debugger host machine.
    windbg -k net:port=50005,key=3u8smyv477z20.2owh9gl90gbxx.3sfsihzgq7di4.nh8ugnmzb4l7
    
    Then restart this VM by running shutdown -r -t 0 from this command prompt.
    
  5. Verwenden Sie CRTL+C, um die bereitgestellte Windbg-Ausgabe in den Befehlspuffer zu kopieren. Dadurch wird verhindert, dass sie versuchen, den zurückgegebenen langen Schlüsselwert zu notieren.

  6. Aktivieren Sie BitLocker und den sicheren Start erneut, wenn Sie mit der Konfiguration der Debuggereinstellungen fertig sind.

  7. Da es bei einer VM mit erweiterter Sitzungsunterstützung zu einer Zeitüberschreitung kommen kann, wenn sie an einem Haltepunkt belassen wird, deaktivieren Sie die Erweiterte Sitzungsunterstützung mithilfe des Pulldown-Menüs Ansicht in der VM.

  8. Der virtuelle Computer wird neu gestartet, nachdem der Debugger geladen und ausgeführt wurde. Dieser Vorgang wird im Folgenden beschrieben.

Starten der Debuggingsitzung

  1. Um eine Verbindung mit dem Ziel-PC herzustellen, verwenden Sie STRG+V, um in das Befehlsfenster des Standard Betriebssystems die Windbg-Zeichenfolge einzufügen, die von kdnet zurückgegeben wurde, die Sie zuvor kopiert haben.

    C:\Debuggers\windbg -k net:port=<YourDebugPort>,key=<YourKey> 
    

Wenn Sie zum ersten Mal versuchen, eine Netzwerkdebuggingverbindung herzustellen, werden Sie möglicherweise aufgefordert, den Zugriff auf die Debugging-Anwendung (WinDbg oder KD) über die Firewall zuzulassen. Sie sollten auf die Eingabeaufforderung reagieren, indem Sie die Kontrollkästchen für alle drei Netzwerktypen aktivieren: Domäne, privat und öffentlich.

Neustart des Ziel-PCs

Sobald der Debugger verbunden ist, starten Sie den Zielcomputer neu. Um zu erzwingen, dass der virtuelle Computer vollständig neu gestartet wird, verwenden Sie diesen Befehl über die Eingabeaufforderung eines Administrators.

shutdown -r -t 0

Wenn der virtuelle Zielcomputer neu gestartet wird, sollte der Debugger im Hostbetriebssystem eine Verbindung herstellen.

Nachdem Sie eine Verbindung mit dem virtuellen Computer hergestellt haben, unterbrechen Sie den Debugger, und Sie können mit dem Debuggen beginnen.

Um die Debugverbindung zu unterstützen, wird ein Kernel debug Network Adapter hinzugefügt und in Netzwerkeigenschaften angezeigt, nachdem der virtuelle Computer neu gestartet wurde.

Problembehandlung beim Debuggen von virtuellen KDNET-Computern

Wenn der Debugger keine Verbindung herstellt, verwenden Sie den Ping-Befehl der Ziel-VM, um die Konnektivität zu überprüfen.

C:\>Ping <HostComputerIPAddress>

Etwas hat nicht richtig funktioniert, und ich bin mir nicht sicher, was...

  • Stellen Sie sicher, dass Sie WinDbg über Ihre Firewall zulassen.
  • Vergewissern Sie sich, dass Sie einen eindeutigen Schlüssel verwenden, der von BCDEdit oder kdnet generiert wurde.

Meine virtuellen Computer verfügen nicht über Netzwerkkonnektivität

  • Öffnen Sie den Virtuellen Switch-Manager von Hyper-V-Manager, wählen Sie Ihren vorhandenen virtuellen Switch aus, und ändern Sie die externe Netzwerk-NIC in den Microsoft Kernel Debug Network Adapter, indem Sie ihn im Dropdownfeld auswählen und dann im Dialogfeld "Virtual Switch Manager" "OK" auswählen. Stellen Sie nach dem Aktualisieren der Virtuellen Switch-NIC sicher, dass Sie ihre virtuellen Computer herunterfahren und neu starten.

Sequenz zum Hinzufügen einer Hyper-V-Rolle zu einem Windows-PC

Wenn Ihr Zielcomputer ein Host für virtuelle Computer ist, können Sie das Netzwerkdebugging einrichten und weiterhin Netzwerkzugriff für die virtuellen Computer haben.

Angenommen, Sie möchten das Netzwerkdebugging in der folgenden Situation einrichten.

  • Der Zielcomputer verfügt über eine einzelne Netzwerkschnittstelle Karte.
  • Sie möchten die Hyper-V-Rolle auf dem Zielcomputer installieren.
  • Sie beabsichtigen, einen oder mehrere virtuelle Computer auf dem Zielcomputer zu erstellen.

Der beste Ansatz besteht darin, das Netzwerkdebugging auf dem Zielcomputer einzurichten, bevor Sie die Hyper-V-Rolle installieren. Dann haben die virtuellen Computer Zugriff auf das Netzwerk.

Wenn Sie sich entscheiden, das Netzwerkdebugging einzurichten, nachdem die Hyper-V-Rolle auf dem Zielcomputer installiert wurde, müssen Sie die Netzwerkeinstellungen für Ihre virtuellen Computer ändern, um sie mit dem Microsoft Kernel Network Debug Adapter zu überbrücken. Andernfalls haben die virtuellen Computer keinen Zugriff auf das Netzwerk.

Weitere Informationen

Einrichten des Kernelmodusdebuggings eines virtuellen Computers manuell mithilfe eines virtuellen COM-Ports

Manuelles Einrichten einer Netzwerkverbindung