Steuern des User-Mode Debuggers über den Kerneldebugger

Sie können die Eingabe und Ausgabe von einem Benutzermodusdebugger an einen Kerneldebugger umleiten. Durch diese Umleitung kann der Kerneldebugger eine bestimmte Debugsitzung im Benutzermodus steuern, die auf dem Zielcomputer auftritt.

Sie können entweder KD oder WinDbg als Kerneldebugger verwenden. Beachten Sie, dass viele der vertrauten Features von WinDbg in diesem Szenario nicht verfügbar sind. Beispielsweise können Sie das Fenster Locals, das Fenster Disassembly oder das Fenster Call Stack nicht verwenden, und Sie können den Quellcode nicht schrittweise durchlaufen. Dies liegt daran, dass WinDbg nur als Viewer für den Debugger (NTSD oder CDB) fungiert, der auf dem Zielcomputer ausgeführt wird.

Sie können entweder CDB oder NTSD als Debugger im Benutzermodus verwenden. NTSD ist die bessere Wahl, da nur minimale Ressourcen vom Prozessor und Betriebssystem des Computers benötigt werden, dessen Anwendung debuggen wird. Wenn NTSD unter der Kontrolle des Kerneldebuggers gestartet wird, wird kein NTSD-Fenster erstellt. Mit NTSD können Sie das Debuggen im Benutzermodus über den seriellen Port frühzeitig in der Startphase und spät bis zum Herunterfahren durchführen.

Hinweis Der Shell-Befehl wird nicht unterstützt, wenn die Ausgabe eines Benutzermodusdebuggers an den Kerneldebugger umgeleitet wird.

Dieser Abschnitt enthält Folgendes:

  • Das Starten der Debugsitzung beschreibt, wie eine Sitzung gestartet wird, bei der der Benutzermodusdebugger vom Kerneldebugger gesteuert wird.

  • Wechselmodi beschreibt die vier verschiedenen Modi, die beteiligt sind, und wie sie sich abwechseln können.

  • Wann diese Technik zu verwenden ist, beschreibt Szenarien, in denen diese Technik besonders nützlich ist.

  • Durch die Kombination dieser Methode mit Remotedebuggen wird beschrieben, wie Sie den Benutzermodusdebugger über einen Kerneldebugger steuern und ihn gleichzeitig als Debugserver verwenden. Diese Kombination kann nützlich sein, wenn sich Ihre Benutzermodussymbole auf einem Symbolserver befinden.