Freigeben über


Remotedebugging mit WinDbg

Remotedebugging umfasst zwei Debugger, die an zwei verschiedenen Speicherorten ausgeführt werden. Der Debugger, der das Debuggen durchführt, wird als Debugserver bezeichnet. Der zweite Debugger, der als Debugclient bezeichnet wird, steuert die Debugsitzung von einem Remotestandort aus. Um eine Remotesitzung einzurichten, müssen Sie zuerst den Debugserver einrichten und dann den Debugclient aktivieren.

Der code, der gedebuggt wird, kann auf demselben Computer ausgeführt werden, auf dem der Debugserver ausgeführt wird, oder er kann auf einem separaten Computer ausgeführt werden. Wenn der Debugserver das Debuggen im Benutzermodus ausführt, kann der zu debuggende Prozess auf demselben Computer wie der Debugserver ausgeführt werden. Wenn der Debugserver das Debuggen im Kernelmodus ausführt, wird der zu debuggende Code normalerweise auf einem separaten Zielcomputer ausgeführt.

Das folgende Diagramm veranschaulicht eine Remotesitzung, bei der der Debuggingserver, der auf einem Hostcomputer ausgeführt wird, das Kernelmodusdebugging von Code ausführt, der auf einem separaten Zielcomputer ausgeführt wird.

Diagramm zur Veranschaulichung von Remote-, Host- und Zielcomputern, die für das Debuggen im Kernelmodus verbunden sind.

Es gibt mehrere Transportprotokolle, die Sie für eine Remotedebuggingverbindung verwenden können: TCP, NPIPE, SPIPE, SSL und COM-Port. Angenommen, Sie haben sich entschieden, TCP als Protokoll zu verwenden, und Sie haben sich entschieden, WinDbg sowohl als Debugclient als auch als Debugserver zu verwenden. Sie können das folgende Verfahren verwenden, um eine Debugsitzung im Remote-Kernelmodus einzurichten:

  1. Öffnen Sie auf dem Hostcomputer WinDbg, und richten Sie eine Kernelmodusdebuggingsitzung mit einem Zielcomputer ein. (Siehe Debuggen im Live-Kernelmodus mit WinDbg (klassisch).)

  2. Unterbrechen Sie den Umbruch, indem Sie im Menü "Debuggen" die Option "Umbruch" auswählen oder STRG-UMBRUCH drücken.

  3. Geben Sie im Debugger-Befehlsfenster den folgenden Befehl ein.

    .server tcp:port=5005

    Hinweis : Die Portnummer 5005 ist beliebig. Die Portnummer ist Ihre Wahl.

  4. WinDbg antwortet mit einer ähnlichen Ausgabe wie folgt.

    Server started.  Client can connect with any of these command lines
    0: <debugger> -remote tcp:Port=5005,Server=YourHostComputer
    
  5. Öffnen Sie auf dem Remotecomputer WinDbg, und wählen Sie im Menü "Datei" die Option "Mit Remotesitzung verbinden" aus.

  6. Geben Sie unter "Verbindungszeichenfolge" die folgende Zeichenfolge ein.

    tcp:Port=5005,Server=YourHostComputer

    Dabei ist IhrHostComputer der Name Ihres Hostcomputers, auf dem der Debugserver ausgeführt wird.

    Wählen Sie OK aus.

Verwenden der Befehlszeile

Als Alternative zu der im vorherigen Abschnitt angegebenen Prozedur können Sie eine Remotedebuggingsitzung an der Befehlszeile einrichten. Angenommen, Sie sind für die Einrichtung einer Kernelmodus-Debuggingsitzung zwischen einem Hostcomputer und einem Zielcomputer über ein 1394-Kabel auf Kanal 32 eingerichtet. Sie können das folgende Verfahren verwenden, um eine Remotedebuggingsitzung einzurichten:

  1. Geben Sie auf dem Hostcomputer den folgenden Befehl in ein Eingabeaufforderungsfenster ein.

    windbg -server tcp:port=5005 -k 1394:channel=32

  2. Geben Sie auf dem Remotecomputer den folgenden Befehl in ein Eingabeaufforderungsfenster ein.

    windbg -remote tcp:Port=5005,Server=YourHostComputer

    Dabei ist IhrHostComputer der Name Ihres Hostcomputers, auf dem der Debugserver ausgeführt wird.

Wichtig

Der Transport von 1394 ist für die Verwendung in Windows 10, Version 1607 und früher, verfügbar. Sie ist in späteren Versionen von Windows nicht verfügbar. Sie sollten Ihre Projekte auf andere Transporte umstellen, z. B. KDNET mit Ethernet. Weitere Informationen zu diesem Transport finden Sie unter Automatisches Einrichten des KDNET-Netzwerkkernkerndebuggings.

Zusatzinformation

Es gibt viele Möglichkeiten zum Einrichten eines anderen Remotedebuggings als die in diesem Thema gezeigten. Vollständige Informationen zum Einrichten eines Debugservers im WinDbg-Debugger-Befehlsfenster finden Sie unter .server (Create Debugging Server). Vollständige Informationen zum Starten von WinDbg (und einrichten des Remotedebuggings) in der Befehlszeile finden Sie unter WinDbg-Befehlszeilenoptionen.