Freigeben über


Remotedebuggen mit WinDbg

Remotedebuggen umfasst zwei Debugger, die an zwei verschiedenen Standorten ausgeführt werden. Der Debugger, der das Debuggen ausführt, wird als Debugserver bezeichnet. Der zweite Debugger, der als Debugclient bezeichnet wird, steuert die Debugsitzung von einem Remotestandort aus. Zum Einrichten einer Remotesitzung müssen Sie zuerst den Debugserver einrichten und dann den Debugclient aktivieren.

Der Code, der gerade 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 in der Regel auf einem separaten Zielcomputer ausgeführt.

Das folgende Diagramm veranschaulicht eine Remotesitzung, bei der der Debugserver, der auf einem Hostcomputer ausgeführt wird, das Debuggen von Code im Kernelmodus ausführt, der auf einem separaten Zielcomputer ausgeführt wird.

Diagramm: Remote-, Host- und Zielcomputer, 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 für die Verwendung von TCP als Protokoll entschieden und WinDbg als Debugclient und Debugserver verwendet. Sie können das folgende Verfahren verwenden, um eine Remote-Kernelmodus-Debugsitzung einzurichten:

  1. Öffnen Sie auf dem Hostcomputer WinDbg, und richten Sie eine Debugsitzung im Kernelmodus mit einem Zielcomputer ein. (Siehe Live Kernel-Mode Debuggen mithilfe von WinDbg (Classic).)

  2. Wechseln Sie ein, indem Sie im Menü Debuggen die Option Umbruch auswählen oder strg-umbruch drücken.

  3. Geben Sie im Debuggerbefehlsfenster den folgenden Befehl ein.

    .server tcp:port=5005

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

  4. WinDbg antwortet mit einer Ausgabe ähnlich der folgenden.

    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

    Wobei YourHostComputer der Name Ihres Hostcomputers ist, auf dem der Debugserver ausgeführt wird.

    Klicken Sie auf OK.

Verwenden der Befehlszeile

Alternativ zur im vorherigen Abschnitt beschriebenen Prozedur können Sie eine Remotedebuggingsitzung über die Befehlszeile einrichten. Angenommen, Sie sind für die Einrichtung einer Debugsitzung im Kernelmodus 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

    Wobei YourHostComputer der Name Ihres Hostcomputers ist, auf dem der Debugserver ausgeführt wird.

Weitere Informationen

Es gibt viele Andere Möglichkeiten zum Einrichten des Remotedebuggings als die in diesem Thema gezeigten. Vollständige Informationen zum Einrichten eines Debugservers im WinDbg-Debuggerbefehlsfenster finden Sie unter .server (Erstellen eines Debugservers).. Vollständige Informationen zum Starten von WinDbg (und zum Einrichten von Remotedebugging) über die Befehlszeile finden Sie unter WinDbg Command-Line-Optionen.