Lokales Kernel-Mode Debuggen

Debugtools für Windows unterstützen lokales Kerneldebuggen. Dies ist das Debuggen im Kernelmodus auf einem einzelnen Computer. Anders ausgedrückt: Der Debugger wird auf dem computer ausgeführt, der gerade gedebuggt wird.

Einrichten des lokalen Kernel-Mode Debuggens

Informationen zum Einrichten des debuggens im lokalen Kernelmodus finden Sie unter Einrichten von lokalem Kernel-Mode Manuelles Debuggen eines einzelnen Computers.

Starten der Debugsitzung

Verwenden von WinDbg

Öffnen Sie WinDbg als Administrator. Wählen Sie im Menü Dateidie Option Kerneldebuggen aus. Öffnen Sie im Dialogfeld Kerneldebuggen die Registerkarte Lokal . Wählen Sie OK aus.

Sie können eine Sitzung auch mit WinDbg starten, indem Sie ein Eingabeaufforderungsfenster als Administrator öffnen und den folgenden Befehl eingeben:

windbg -kl

Verwenden von KD

Öffnen Sie ein Eingabeaufforderungsfenster als Administrator, und geben Sie den folgenden Befehl ein:

kd -kl

Befehle, die nicht verfügbar sind

Nicht alle Befehle sind in einer lokalen Kerneldebugsitzung verfügbar. In der Regel können Sie keinen Befehl verwenden, der dazu führt, dass der Zielcomputer beendet wird, auch nicht vorübergehend, da Sie den Betrieb nicht fortsetzen können.

Insbesondere können Sie die folgenden Befehle nicht verwenden:

  • Ausführungsbefehle wie g (Go), p (Step), t (Trace), wt (Ablaufverfolgungs- und Überwachungsdaten),tb (Ablaufverfolgung zum nächsten Branch),gh (Go with Exception Handled) und gn (Go with Exception Not Handled) (Go with Exception Not Handled)

  • Befehle zum Herunterfahren und Abbild der Datei, z. B. ".crash", ".dump" und ".reboot"

  • Haltepunktbefehle wie bp, bu, ba, bc, bd, be und bl

  • Registrieren von Anzeigebefehlen, z. B . r und Variationen

  • Stapelablaufverfolgungsbefehle, z. B . k und Variationen

Wenn Sie das lokale Kerneldebuggen mit WinDbg ausführen, sind auch alle entsprechenden Menübefehle und Schaltflächen nicht verfügbar.

Verfügbare Befehle

Alle Speichereingabe- und Ausgabebefehle sind verfügbar. Sie können frei aus Dem Benutzerspeicher und Kernelspeicher lesen. Sie können auch in den Arbeitsspeicher schreiben. Stellen Sie sicher, dass Sie nicht in den falschen Teil des Kernelspeichers schreiben, da dies Datenstrukturen beschädigen kann und häufig dazu führt, dass der Computer nicht mehr reagiert (also abstürzt).

Schwierigkeiten beim Ausführen des lokalen Kerneldebuggings

Lokales Kerneldebuggen ist ein sehr heikler Vorgang. Achten Sie darauf, dass Sie das System nicht beschädigen oder abstürzen.

Einer der schwierigsten Aspekte des lokalen Kerneldebuggens ist, dass sich der Computerstatus ständig ändert. Arbeitsspeicher wird ein- und ausgelagert, der aktive Prozess ändert sich ständig, und virtuelle Adresskontexte bleiben nicht konstant. Unter diesen Bedingungen können Sie jedoch Effektiv Dinge analysieren, die sich langsam ändern, z. B. bestimmte Gerätezustände.

Kernelmodustreiber und das Windows-Betriebssystem senden häufig Nachrichten an den Kerneldebugger, indem sie DbgPrint und zugehörige Funktionen verwenden. Diese Meldungen werden beim debuggen des lokalen Kernels nicht automatisch angezeigt. Sie können sie mit der Erweiterung !dbgprint anzeigen.

LiveKD

Das LiveKD-Tool simuliert das lokale Kerneldebuggen. Dieses Tool erstellt eine "Momentaufnahme"-Dumpdatei des Kernelspeichers, ohne den Kernel tatsächlich zu beenden, während dieser Momentaufnahme erstellt wird. (Daher zeigt die Momentaufnahme möglicherweise nicht tatsächlich einen einzelnen Sofortzustand des Computers an.)

LiveKD ist nicht Teil des Pakets Debugtools für Windows. Sie können LiveKd von der Windows Sysinternals-Website herunterladen.