Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Dies beschreibt die Verwendung von Debuggerbefehlen. WinDbg ist ein Debugger, der verwendet werden kann, um Absturzabbilder zu analysieren, den Livebenutzermodus und den Kernelmoduscode zu debuggen und CPU-Register und Arbeitsspeicher zu untersuchen. Weitere Informationen finden Sie unter WinDbg Overview.
Informationen zum Installieren des Debuggers finden Sie unter Installieren des Windows-Debuggers.
Informationen zu den ersten Schritten mit WinDbg finden Sie unter "Erste Schritte mit Dem Windows-Debugging".
WinDbg Debugger-Befehlsfenster
Bei WinDbg bezieht sich "Debugger-Befehlsfenster" auf das Fenster mit der Bezeichnung "Befehl" in der Titelleiste. Dieses Fenster enthält zwei Bereiche:
Im kleinen unteren Bereich geben Sie Befehle ein.
Im großen oberen Bereich wird die Befehlsausgabe angezeigt.
Dieses Fenster ist immer am Anfang einer Debugsitzung geöffnet. Sie können dieses Fenster erneut öffnen oder zu diesem Fenster wechseln, indem Sie BEFEHL im Menü "Ansicht" auswählen, ALT+1 drücken oder die Schaltfläche "Befehl(ALT+1)" auswählen (
Sie können die NACH-OBEN- und NACH-UNTEN-TASTE verwenden, um durch den Befehlsverlauf zu scrollen. Wenn ein vorheriger Befehl angezeigt wird, können Sie ihn bearbeiten und dann die EINGABETASTE drücken, um den vorherigen Befehl (oder die bearbeitete Version des vorherigen Befehls) auszuführen. Der Cursor muss nicht am Ende der Zeile stehen, damit dieses Verfahren ordnungsgemäß funktioniert.
KD oder CDB
Bei KD oder CDB bezieht sich "Debugger-Befehlsfenster" auf das gesamte Fenster. Sie geben Befehle an der Eingabeaufforderung am unteren Rand des Fensters ein. Wenn die Befehle über eine Ausgabe verfügen, zeigt das Fenster die Ausgabe an und zeigt dann die Eingabeaufforderung erneut an.
Eingabeaufforderung im Debugger-Befehlsfenster
Wenn Sie das Debuggen im Benutzermodus ausführen, sieht die Eingabeaufforderung im Fenster "Debuggerbefehl" wie im folgenden Beispiel aus.
2:005>
Im vorherigen Beispiel ist 2 die aktuelle Prozessnummer, und 005 ist die aktuelle Threadnummer.
Wenn Sie den Debugger an mehrere Computer anfügen, wird die Systemnummer wie im folgenden Beispiel vor dem Prozess und der Threadnummer eingeschlossen.
3:2:005>
In diesem Beispiel ist 3 die aktuelle Systemnummer, 2 ist die aktuelle Prozessnummer, und 005 ist die aktuelle Threadnummer.
Wenn Sie das Debuggen im Kernelmodus auf einem Zielcomputer mit nur einem Prozessor ausführen, sieht die Eingabeaufforderung wie im folgenden Beispiel aus.
kd>
Wenn der Zielcomputer jedoch über mehrere Prozessoren verfügt, wird die Anzahl des aktuellen Prozessors wie im folgenden Beispiel vor der Eingabeaufforderung angezeigt.
0: kd>
Wenn der Debugger mit der Verarbeitung eines zuvor ausgestellten Befehls beschäftigt ist, werden neue Befehle vorübergehend nicht verarbeitet, obwohl sie dem Befehlspuffer hinzugefügt werden können. Darüber hinaus können Sie weiterhin Steuertasten in KD und CDB verwenden, und Sie können weiterhin Menübefehle und Tastenkombinationen in WinDbg verwenden. Wenn sich KD oder CDB in diesem Auslastungszustand befindet, wird keine Eingabeaufforderung angezeigt. Wenn sich WinDbg in diesem Auslastungszustand befindet, wird der folgende Indikator anstelle der Eingabeaufforderung angezeigt:
*BUSY*
Sie können den BEFEHL PCMD (Eingabeaufforderungsbefehl festlegen) verwenden, um dieser Eingabeaufforderung Text hinzuzufügen.
Arten von Befehlen
WinDbg, KD und CDB unterstützen eine Vielzahl von Befehlen. Einige Befehle werden zwischen den Debuggern gemeinsam verwendet, und einige sind nur für einen oder zwei der Debugger verfügbar.
Einige Befehle sind nur im Livedebugging verfügbar, und andere Befehle sind nur verfügbar, wenn Sie eine Speicherabbilddatei debuggen.
Einige Befehle sind nur während des Debuggens im Benutzermodus verfügbar, und andere Befehle sind nur beim Kernelmodusdebugging verfügbar.
Einige Befehle sind nur verfügbar, wenn das Ziel auf bestimmten Prozessoren ausgeführt wird. Weitere Informationen zu allen Befehlen und deren Einschränkungen finden Sie unter Debuggerbefehle.
Befehle "Bearbeiten", "Wiederholen" und "Abbrechen"
Sie können standardbearbeitungsschlüssel verwenden, wenn Sie einen Befehl eingeben:
Verwenden Sie die NACH-OBEN- und NACH-UNTEN-TASTE, um vorherige Befehle zu finden.
Bearbeiten Sie den aktuellen Befehl mit den Tasten RÜCKTASTE, ENTF, EINFÜGEN und PFEILTASTE NACH LINKS und PFEILTASTE NACH RECHTS.
Drücken Sie die ESC-TASTE, um die aktuelle Zeile zu löschen.
Sie können die TAB-TASTE drücken, um die Texteingabe automatisch abzuschließen. Drücken Sie in einem der Debugger die TAB-TASTE, nachdem Sie mindestens ein Zeichen eingegeben haben, um einen Befehl automatisch abzuschließen. Drücken Sie wiederholt die TAB-TASTE, um die Textabschlussoptionen zu durchlaufen, und halten Sie die UMSCHALTTASTE gedrückt, und drücken Sie TAB, um rückwärts zu wechseln. Sie können auch Wildcardzeichen im Text verwenden und die TAB-TASTE drücken, um die vollständigen Vervollständigungsoptionen zu erweitern. Wenn Sie z. B. fo*!ba eingeben und dann die TAB-TASTE drücken, wird der Debugger auf den Satz aller Symbole erweitert, die mit "ba" beginnen, in allen Modulen mit Modulnamen, die mit "fo" beginnen. Als weiteres Beispiel können Sie alle Erweiterungsbefehle ausführen, die "prcb" enthalten, indem Sie !*prcb eingeben und dann die TAB-TASTE drücken.
Wenn Sie die TAB-TASTE verwenden, um den Textabschluss auszuführen, und Ihr Textfragment mit einem Punkt (.) beginnt, wird der Text mit einem Punktbefehl abgeglichen. Wenn Ihr Textfragment mit einem Ausrufezeichen (!)beginnt, wird der Text mit einem Erweiterungsbefehl abgeglichen. Andernfalls wird der Text mit einem Symbol abgeglichen. Wenn Sie die TAB-TASTE zum Eingeben von Symbolen verwenden, können Sie durch Drücken der TAB-TASTE den Code und die Typ- und Modulnamen vervollständigen. Wenn kein Modulname ersichtlich ist, werden lokale Symbole und Modulnamen vervollständigt. Wenn ein Modul oder Modulmuster angegeben wird, vervollständigt die Symbolvervollständigung Code und Typen aus allen Übereinstimmungen.
Sie können das Fenster "Debuggerbefehl" auswählen und gedrückt halten (oder mit der rechten Maustaste klicken), um den Inhalt der Zwischenablage automatisch in den Befehl einzufügen, den Sie eingeben.
Die maximale Befehlslänge beträgt 4096 Zeichen. Wenn Sie jedoch den Benutzermodusdebugger über den Kerneldebugger steuern, beträgt die maximale Zeilenlänge 512 Zeichen.
Drücken Sie in CDB und KD die EINGABETASTE selbst, um den vorherigen Befehl zu wiederholen. In WinDbg können Sie dieses Verhalten aktivieren oder deaktivieren. Weitere Informationen zu diesem Verhalten finden Sie unter EINGABETASTE (Letzter Befehl wiederholen).
Wenn der letzte von Ihnen ausgegebene Befehl eine lange Anzeige darstellt und Sie ihn abschneiden möchten, verwenden Sie die STRG+C-Taste in CDB oder KD. Verwenden Sie in WinDbg Debug | Umbrechen oder drücken Sie STRG+UMBRUCH.
Im Kernelmodusdebugging können Sie Befehle über die Tastatur des Zielcomputers abbrechen, indem Sie STRG+C drücken.
Sie können den BEFEHL CLS (Clear Screen) verwenden, um den gesamten Text aus dem Fenster " Debuggerbefehl" zu löschen. Mit diesem Befehl wird der gesamte Befehlsverlauf gelöscht. In WinDbg können Sie den Befehlsverlauf löschen, indem Sie im Menüband auf der Registerkarte "Befehl" die Option "Verlauf löschen" verwenden oder im Kontextmenü (Rechtsklick) des Befehlsfensters die Option "Befehlsverlauf löschen" auswählen.
Ausdruckssyntax
Viele Befehle und Erweiterungsbefehle akzeptieren Ausdrücke als ihre Argumente. Der Debugger wertet diese Ausdrücke aus, bevor der Befehl ausgeführt wird. Weitere Informationen zu Ausdrücken finden Sie unter Auswerten von Ausdrücken.
Decknamen
Aliase sind Textmakros, mit denen Sie vermeiden können, komplexe Ausdrücke neu einschreiben zu müssen. Es gibt zwei Arten von Aliasen. Weitere Informationen zu Aliasen finden Sie unter Verwenden von Aliasen.
Selbstwiederholende Befehle
Sie können die folgenden Befehle verwenden, um eine Aktion zu wiederholen oder andere Befehle bedingt auszuführen:
Der bedingte Befehl j (Execute If-Else)
Der bedingte Befehl z (Execute While)
Der Befehlsqualifizierer ~e (Thread-spezifischer Befehl)
Der Befehl "!list extension"
Weitere Informationen zu den einzelnen Befehlen finden Sie in den einzelnen Befehlsthemen.
Steuern des Bildlaufs
Sie können die Scrollleiste verwenden, um Ihre vorherigen Befehle und deren Ausgabe anzuzeigen.
Wenn Sie CDB oder KD verwenden, führt jeder Tastatureintrag automatisch einen Bildlauf im Debugger-Befehlsfenster nach unten durch.
In WinDbg scrollt die Anzeige automatisch nach unten, wenn ein Befehl eine Ausgabe erzeugt oder Sie die EINGABETASTE drücken. Wenn Sie diesen automatischen Bildlauf deaktivieren möchten, deaktivieren Sie die Schaltfläche " Auto Scroll " auf der Registerkarte " Befehlsmenüband ", oder klicken Sie mit der rechten Maustaste in das Befehlsfenster, und deaktivieren Sie den Automatischen Bildlauf.
WinDbg Text-Features
In WinDbg können Sie mehrere zusätzliche Features verwenden, um zu ändern, wie Text im Fenster "Debuggerbefehl" angezeigt wird. Sie können auf einige dieser Features über die Menübandregisterkarte " Befehl " und einige über das Kontextmenü (rechtsklick) im Befehlsfenster zugreifen.
Der Word-Umbruchbefehl im Kontextmenü aktiviert und deaktiviert den Wortumbruchstatus. Dieser Befehl wirkt sich auf das gesamte Fenster aus, nicht nur auf Befehle, die Sie nach dem Ändern dieses Zustands verwenden. Da viele Befehle und Erweiterungen formatierte Darstellungen erzeugen, wird in der Regel kein Wortumbruch empfohlen.
Die Schaltfläche Hervorheben der Auswahl auf der Registerkarte Menüband (oder Hervorheben der Auswahl im Kontextmenü) hebt die aktuelle Textauswahl hervor oder hebt die Hervorhebung auf (Strg+Alt+H).
Die Schaltfläche "Auswahl löschen" auf der Registerkarte "Befehl" (oder "Markierten Text löschen" im Kontextmenü) löscht den aktuell ausgewählten Text aus dem Befehlsverlauf.
Sie können zwischen Befehlsabschnitten navigieren, indem Sie auf der Registerkarte Befehl'Gehe zu Zurück' (STRG+[) und 'Gehe zu Weiter' (STRG+]) verwenden oder 'Vorherigen Befehl auswählen' und 'Nächsten Befehl auswählen' im Kontextmenü auswählen.
Sie können die Farben anpassen, die für den Text und den Hintergrund des Debuggerbefehlsfensters verwendet werden. Sie können unterschiedliche Farben für unterschiedliche Textarten angeben. Sie können z. B. die automatische Registerausgabe in einer Farbe, Fehlermeldungen in einer anderen Farbe und DbgPrint-Nachrichten in einer dritten Farbe anzeigen.
Sie können alle Features verwenden, die winDbgs Debuginformationsfenstern gemeinsam haben, z. B. das Anpassen der Schriftarten und die Verwendung spezieller Bearbeitungsbefehle.
Remotedebugging
Wenn Sie Remotedebugging über den Debugger ausführen, kann der Debugclient auf eine begrenzte Anzahl von Befehlen zugreifen. Um die Anzahl der Befehle zu ändern, auf die der Client zugreifen kann, verwenden Sie die Befehlszeilenoption"-clines" oder die _NT_DEBUG_HISTORY_SIZE Umgebungsvariable.