Richten Sie das KDNET-Netzwerk-Kernel-Debugging automatisch ein
Debugtools für Windows, unterstützen das Kernel-Debugging über ein Netzwerk. Dieser Artikel beschreibt, wie Sie das Netzwerk-Debugging automatisch mit dem Setup-Tool kdnet.exe einrichten können.
Der Computer, auf dem der Debugger ausgeführt wird, wird als Hostcomputer bezeichnet, und der Computer, der debugged wird, wird als Zielcomputer bezeichnet. Der Hostcomputer muss Windows 7 oder höher ausführen, und der Zielcomputer muss Windows 8 oder höher ausführen.
Bestimmen Sie die IP-Adresse des Host-Computers
Überprüfen Sie, ob der Ziel- und der Host- Computer über ein geeignetes Netzwerkkabel mit einem Netzwerk-Hub oder Switch verbunden sind.
Öffnen Sie auf dem Host-Computer eine Eingabeaufforderung und geben Sie
IPConfig
ein, um die IP-Konfiguration anzuzeigen.Suchen Sie in der Befehlsausgabe die IPv4-Adresse des Ethernet-Adapters.
...
Ethernet adapter Ethernet:
...
IPv4 Address. . . . . . . . . . . : <YourHostIPAddress>
...
Alternativ können Sie auch Einstellungen, Netzwerk & Internet, Ethernet verwenden, um Informationen zur IPv4-Adresse zu erhalten.
- Notieren Sie sich die IPv4-Adresse des Netzwerkadapters, den Sie für das Debuggen verwenden möchten.
Einrichten der Host- und Zielcomputer
Verwendet das Dienstprogramm kdnet.exe, um die Debugger-Einstellungen auf dem Ziel-PC automatisch zu konfigurieren, indem folgende Schritte ausgeführt werden.
Vergewissern Sie sich, dass die Windows-Debugging-Tools für Windows auf dem Hostsystem installiert sind. Informationen zum Herunterladen und Installieren der Debugging-Tools finden Sie unter Debugging-Tools für Windows.
Suchen Sie die Dateien kdnet.exe und VerifiedNICList.xml. Standardmäßig befinden sich die Dateien an folgendem Ort:
C:\Program Files (x86)\Windows Kits\10\Debuggers\x64
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 das nicht der Fall ist, ist es am besten, die gleichen Tools auf dem Host laufen zu lassen, auf dem auch das Ziel läuft. Wenn das Ziel beispielsweise 32-Bit-Windows ausführt, führen Sie eine 32-Version des Debuggers auf dem Host aus. Für weitere Informationen, siehe Auswahl der 32-Bit oder 64-Bit Debugtools.
Kopieren Sie die beiden Dateien auf dem Host-Computer auf eine Netzwerkfreigabe oder einen USB-Stick, damit sie auf dem Zielcomputer verfügbar sind.
Erstellen Sie auf dem Zielcomputer ein Verzeichnis C:\KDNET und kopieren Sie die Dateien kdnet.exe und VerifiedNICList.xml in dieses Verzeichnis.
Wichtig
Bevor Sie kdnet.exe zum Ändern der Boot-Informationen verwenden, müssen Sie möglicherweise die Windows-Sicherheitsfunktionen wie BitLocker und Secure Boot auf dem Test-PC vorübergehend aussetzen. Aktivieren Sie diese Sicherheitsfunktionen wieder, wenn die Tests abgeschlossen sind, und verwalten Sie den Test-PC angemessen, wenn die Sicherheitsfunktionen deaktiviert sind.
Öffnen Sie auf dem Zielcomputer eine Eingabeaufforderung als Administrator. Geben Sie diesen Befehl ein, um zu überprüfen, ob der Zielcomputer über einen unterstützten Netzwerkadapter verfügt:
C:\KDNET>kdnet.exe Network debugging is supported on the following NICs: busparams=1.0.0, Broadcom NetXtreme Gigabit Ethernet, Plugged in. This Microsoft hypervisor supports using KDNET in guest VMs.
Wenn die Ausgabe von kdnet.exe anzeigt, dass der Netzwerkadapter auf dem Ziel unterstützt wird, können Sie fortfahren.
Geben Sie den folgenden Befehl ein, um die IP-Adresse des Hostsystems festzulegen und einen eindeutigen Verbindungsschlüssel zu erzeugen. Verwenden Sie die IP-Adresse oder den Name des Hostsystems. Wählen Sie eine eindeutige Portadresse für jedes Ziel-/Hostpaar aus, mit dem Sie arbeiten, innerhalb des empfohlenen Bereichs von 50000-50039.
C:\KDNET>kdnet.exe <HostComputerIPAddress> <YourDebugPort> Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection. Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Kopieren Sie den zurückgegebenen Schlüssel in eine Notepad-.txt-Datei.
Verbinden Sie WinDbg mit dem Ziel für das Kernel-Debugging
Öffnen Sie auf dem Hostcomputer WinDbg. Wählen Sie im Menü Datei die Option Kerneldebugging. Öffnen Sie im Dialogfeld Kernel-Debugging die Registerkarte Net. Fügen Sie die Portnummer und den Schlüssel ein, die Sie zuvor in der Notepad-.txt-Datei gespeichert haben. Wählen Sie OK aus.
Sie können eine WinDbg-Sitzung auch starten, indem Sie eine Eingabeaufforderung öffnen und den folgenden Befehl eingeben. <YourPort> ist der Port, den Sie zuvor ausgewählt haben, und <YourKey> ist der Schlüssel, der zuvor von kdnet.exe zurückgegeben wurde. Fügen Sie den Schlüssel ein, den Sie zuvor in der Notepad-.txt-Datei gespeichert haben.
windbg.exe -k -d net:port=<YourDebugPort>,key=<YourKey>
Der optionale -d
Parameter, der im Beispiel gezeigt wird, ermöglicht ein frühes Eingreifen. Für weitere Informationen, siehe WinDbg Befehlszeilenoptionen.
Wenn Sie aufgefordert werden, WinDbg den Zugriff auf den Port über die Firewall zu ermöglichen, lassen Sie WinDbg den Zugriff auf den Port für alle drei verschiedenen Netzwerktypen zu.
An diesem Punkt wartet der Debugger darauf, dass das Ziel wieder eine Verbindung herstellt. Der Text wird im Befehlsfenster des Debuggers angezeigt. Dieser Text sollte in etwa so aussehen wie der folgende:
Microsoft (R) Windows Debugger Version 1.0.1908.30002 AMD64
Copyright (c) Microsoft Corporation. All rights reserved.
Using NET for debugging
Opened WinSock 2.0
Waiting to reconnect...
Neustarten des Ziel-Computers
Sobald sich der Debugger in der Phase „Waiting to reconnect...“ befindet, starten Sie den Zielcomputer neu. Eine Möglichkeit, den PC neu zu starten, besteht darin, diesen Befehl von der Eingabeaufforderung eines Administrators aus zu verwenden.
shutdown -r -t 0
Nach dem Neustart des Ziel-PCs sollte der Debugger automatisch eine Verbindung herstellen.
Tipps zur Problembehandlung
Debugging-Anwendungen müssen durch eine Firewall zugelassen werden
Auf der Host-Seite, auf der der Debugger läuft, müssen alle Arten von Netzwerken aktiviert sein, damit der Debugger über die Firewall mit dem Ziel kommunizieren kann.
Verwenden Sie die Systemsteuerung, um den Zugriff durch die Firewall zu erlauben.
Öffnen Sie Systemsteuerung >, System und Sicherheit und wählen Sie App durch die Windows-Firewall zulassen.
(WinDbg) Suchen Sie in der Liste der Anwendungen den WinDbg-Modulprozess (TCP) (alle).
(WinDbg (Classic)) Suchen Sie in der Liste der Anwendungen Windows GUI Symbolic Debugger und Windows-Kerneldebugger.
Verwenden Sie die Kontrollkästchen, um diese beiden Anwendungen über alle drei verschiedenen Netzwerktypen zuzulassen.
Scrollen Sie nach unten, und wählen Sie OK aus, um die Firewalländerungen zu speichern. Starten Sie den Debugger neu.
Verwenden Sie Ping, um die Konnektivität zu testen.
Wenn der Debugger eine Zeitüberschreitung aufweist und keine Verbindung herstellt, verwenden Sie den Ping-Befehl auf dem Ziel-PC, um die Verbindung zu überprüfen.
C:\>Ping <HostComputerIPAddress>
Auswahl eines Ports für das Netzwerk-Debugging
Wenn der Debugger eine Zeitüberschreitung aufweist und keine Verbindung herstellen kann, liegt das möglicherweise daran, dass die Standard-Portnummer 50000 bereits verwendet wird oder blockiert ist.
Sie können eine beliebige Pot-Nummer zwischen 49152 und 65535 auswählen. Der empfohlene Bereich liegt zwischen 50000 und 50039. Der von Ihnen ausgewählte Port wird für den exklusiven Zugriff durch den Debugger geöffnet, der auf dem Hostcomputer ausgeführt wird.
Der Bereich der Portnummern, die für das Netzwerkdebugging verwendet werden können, kann durch die Netzwerkrichtlinie Ihres Unternehmens eingeschränkt werden. Um festzustellen, ob die Richtlinie Ihres Unternehmens den Bereich der Ports begrenzt, die für das Netzwerkdebugging verwendet werden können, wenden Sie sich an Ihren Netzwerkadministrator.
Unterstützte Netzwerkadapter
Wenn beim Ausführen von kdnet.exe die Meldung „Network debugging is not supported on any of the NICs in this machine“ (Netzwerk-Debugging wird von keiner der NICs in diesem Rechner unterstützt) angezeigt wird, wird der Netzwerkadapter nicht unterstützt.
Der Hostcomputer kann einen beliebigen Netzwerkadapter verwenden, der Zielcomputer muss jedoch einen Netzwerkadapter verwenden, der von Debugging-Tools für Windows unterstützt wird. Eine Liste der unterstützten Netzwerkadapter finden Sie unter Unterstützte Ethernet-NICs für das Netzwerk-Kernel-Debugging in Windows 10 und Unterstützte Ethernet-NICs für das Netzwerk-Kernel-Debugging in Windows 8.1.
Andere Debugging-Arten aktivieren
Ab dem Windows 10 Update vom Oktober 2020 (20H2) werden die folgenden Optionen unterstützt, um vier Arten des Debuggings zu aktivieren:
b – aktiviert die Bootmgr-Debugging-Funktion. Siehe BCDEdit /bootdebug.
w – aktiviert das Debuggen von Winload. Siehe BCDEdit /bootdebug.
h – aktiviert das Debugging des Hypervisors. Siehe BCDEdit /hypervisorsettings.
k – aktiviert die Kernel-Debugging-Funktion. Siehe Erste Schritte mit WinDbg (Kernelmodus).
Es kann eine beliebige Kombination von Debug- Arten angegeben werden.
Wenn keine Debug- Arten eingegeben werden, wird das Kernel-Debugging aktiviert.
Wenn sowohl Hypervisor- als auch Kernel-Debug aktiviert sind, wird der Hypervisor-Port auf <YourDebugPort>
+ 1 gesetzt.
Beispielverwendung
Verwenden Sie die Option – bkw, um das Debuggen von Bootmgr, Kernel und Winload zu aktivieren.
C:\>kdnet.exe <HostComputerIPAddress> <YourDebugPort> -bkw
Enabling network debugging on Intel(R) 82577LM Gigabit Network Connection.
Key=2steg4fzbj2sz.23418vzkd4ko3.1g34ou07z4pev.1sp3yo9yz874p
Zusammenfassung der Optionen für die Debugging-Arten
KNDET Option | Beschreibung | Gleichwertiger Set-Befehl |
---|---|---|
b | aktiviert die Bootmgr-Debugging-Funktion | bcdedit /bootdebug {bootmgr} ein |
h | aktiviert das Debuggen des Hypervisors | bcdedit /set hypervisordebug ein |
k | aktiviert die Kernel-Debugging-Funktion | bcdedit /debug on |
a | aktiviert das Debuggen von Winload | BCDEdit /bootdebug ein |
Festlegen der Busparameter
Wenn kdnet nicht in der Lage ist, die Busparameter für Ihre Übertragung automatisch zu ermitteln, geben Sie sie in der Befehlszeile mit der Option /busparams
in dieser Syntax an.
kdnet.exe /busparams [b.d.f] [host] [port] [-[b][h][k][w]]
b.d.f
gibt die Busparameter des zu konfigurierenden Geräts an.
Verwenden Sie den Gerätemanager auf dem Zielcomputer, um die PCI-Bus-, Geräte- und Funktionsnummern für den Adapter zu ermitteln, den Sie zum Debuggen verwenden möchten. Für Bus-Parameter geben Sie b.d.f ein, wobei b, d und f die Busnummer, die Gerätenummer und die Funktionsnummer des Adapters darstellen. Diese Werte werden im Geräte-Manager unter Standort auf der Registerkarte Allgemein angezeigt.
Zum Beispiel:
C:\>kdnet.exe /busparams 0.29.7 <HostComputerIPAddress> <YourDebugPort> -bkw