Freigeben über


Auswählen der besten Remotedebugmethode

Es gibt zwei primäre Methoden zum Remotedebuggen sowie mehrere zusätzliche Methoden und eine große Anzahl von Kombinationsmethoden.

Hier finden Sie einige Tipps, die Ihnen bei der Auswahl der besten Technik helfen.

  • Das Remotedebuggen über den Debugger ist in der Regel die beste Methode. Wenn Sie einfach über einen Server und einen Client verfügen und sie sich frei miteinander verbinden können, werden die gleichen Debugger-Binärdateien sowohl auf dem Client als auch auf dem Server installiert, und der Debugtechniker, der den Client betreibt, kann mit jemandem im Raum mit dem Server kommunizieren, dies ist die empfohlene Methode.

    Der Client und der Server können eine beliebige Version von Windows ausführen. Sie müssen nicht dieselbe Version wie untereinander ausführen.

    Wenn der Client keine Verbindungsanforderung an den Server senden kann, der Server aber eine Anforderung an den Client senden kann, können Sie das Remotedebuggen über den Debugger mit einer umgekehrten Verbindung mithilfe des clicon-Parameters verwenden.

  • Remotedebuggen über remote.exe wird verwendet, um ein Eingabeaufforderungsfenster remote zu steuern. Es kann verwendet werden, um KD, CDB oder NTSD remote zu steuern. Sie kann nicht mit WinDbg verwendet werden.

    Wenn Ihr Client über keine Kopien der Debuggerbinärdateien verfügt, müssen Sie die remote.exe-Methode verwenden.

  • Ein Prozessserver oder ein KD-Verbindungsserver kann verwendet werden, wenn der Debugtechniker nicht mit einer Person im Raum mit dem Server kommunizieren kann. Die gesamte eigentliche Debugarbeit wird vom Client (der smarte Client genannt) ausgeführt. Dadurch entfällt die Notwendigkeit, eine zweite Person auf dem Server selbst zu haben.

    Prozessserver werden für das Debuggen im Benutzermodus verwendet. KD-Verbindungsserver werden für das Debuggen im Kernelmodus verwendet. Abgesehen von dieser Unterscheidung verhalten sie sich ähnlich.

    Diese Methode ist auch nützlich, wenn der Computer, auf dem der Server ausgeführt wird, keine hohen Prozesslasten verarbeiten kann oder wenn der Techniker, auf dem der Client ausgeführt wird, Zugriff auf Symboldateien oder Quelldateien hat, die vertraulich sind und vom Server nicht zugegriffen werden kann. Diese Methode ist jedoch nicht so schnell oder effizient wie das Remotedebuggen über den Debugger. Diese Methode kann nicht für das Debuggen von Dumpdateien verwendet werden.

    Weitere Informationen finden Sie unter Prozessserver (Benutzermodus) und KD-Verbindungsserver (Kernelmodus).

  • Ein Repeater ist ein einfacher Proxyserver, der Daten zwischen zwei Computern weitergibt. Sie können einen Repeater zwischen Client und Server hinzufügen, wenn Sie das Remotedebuggen über den Debugger durchführen oder einen Prozessserver verwenden.

    Die Verwendung eines Repeaters kann erforderlich sein, wenn Ihr Client und Ihr Server nicht direkt miteinander kommunizieren können, aber jeweils auf einen externen Computer zugreifen können. Sie können reverse-Verbindungen auch mit Repeatern verwenden. Es ist sogar möglich, zwei Repeater hintereinander zu verwenden, aber dies ist selten notwendig.

    Weitere Informationen finden Sie unter Repeater .

  • Es ist auch möglich, CDB (oder NTSD) über den Kerneldebugger zu steuern. Dies ist eine weitere Form des Remotedebuggens. Weitere Informationen finden Sie unter Steuern des User-Mode Debuggers über den Kerneldebugger .

Variationen aller dieser Methoden sind möglich.

Es ist möglich, mehrere Computer miteinander zu verketten, um mehr als eine Transportmethode zu nutzen. Sie können komplizierte Transportsequenzen erstellen, die berücksichtigen, wo sich der Techniker befindet, wo sich die Symbole befinden und ob Firewalls Verbindungen in bestimmte Richtungen verhindern. Einige Beispiele finden Sie unter Erweiterte Remotedebugszenarien .

Sie können sogar Remotedebuggen auf einem einzelnen Computer durchführen. Beispielsweise kann es hilfreich sein, einen Prozessserver mit niedrigen Berechtigungen zu starten und dann eine Verbindung mit einem smarten Client mit hohen Berechtigungen herzustellen.