WinDbg-Befehlszeilenoptionen

Erstmalige Benutzer von WinDbg sollten mit dem Abschnitt "Debuggen mit WinDbg (Klassisch)" beginnen.

Die WinDbg-Befehlszeile verwendet die folgende Syntax:

windbg [ -server ServerTransport | -remote ClientTransport ] [-lsrcpath ]
   [ -premote SmartClientTransport ] [-?] [-ee {masm|c++}] 
   [-clines lines] [-b] [-d] [-aExtension]  
   [-failinc] [-g] [-G] [-hd] [-j] [-n] [-noshell] [-o] [-openPrivateDumpByHandle Handle]
   [-Q | -QY] [-QS | -QSY] [-robp] [-secure] [-ses] [-sdce] 
   [-sicv] [-sins] [-snc] [-snul] [-sup] [-sflags 0xNumber] 
   [-T Title] [-v] [-log{o|a} LogFile] [-noinh] 
   [-i ImagePath] [-y SymbolPath] [-srcpath SourcePath] 
   [-k [ConnectType] | -kl | -kx ExdiOptions] [-c "command"] 
   [-pb] [-pd] [-pe] [-pr] [-pt Seconds] [-pv]
   [-W Workspace] [-WF Filename] [-WX] [-zp PageFile] 
   [ -p PID | -pn Name | -psn ServiceName | -z DumpFile | executable ] 

windbg -I[S] 

windbg -IU KeyString

windbg -IA[S] 

Beschreibungen der WinDbg-Befehlszeilenoptionen folgen. Bei allen Befehlszeilenoptionen wird die Groß-/Kleinschreibung beachtet, mit Ausnahme von -j. Der anfängliche Bindestrich kann durch einen Schrägstrich (/) ersetzt werden.

Wenn die Option "-remote " oder "-server " verwendet wird, muss sie vor anderen Optionen in der Befehlszeile angezeigt werden. Wenn eine ausführbare Datei angegeben ist, muss sie zuletzt in der Befehlszeile angezeigt werden. Jeder Text, nachdem der ausführbare Name an das ausführbare Programm als eigene Befehlszeilenparameter übergeben wurde.

Parameter

-Server ServerTransport
Erstellt einen Debugserver, auf den von anderen Debuggern zugegriffen werden kann. Eine Erläuterung der möglichen ServerTransport-Werte finden Sie unter Aktivieren eines Debugservers. Wenn dieser Parameter verwendet wird, muss er die ersten Parameter in der Befehlszeile sein.

-abgelegen ClientTransport
Erstellt einen Debugclient und stellt eine Verbindung mit einem Debugserver bereit, der bereits ausgeführt wird. Eine Erläuterung der möglichen ClientTransport-Werte finden Sie unter Aktivieren eines Debugclients. Wenn dieser Parameter verwendet wird, muss er die ersten Parameter in der Befehlszeile sein.

-Premote SmartClientTransport
Erstellt einen intelligenten Client und stellt eine Verbindung mit einem Prozessserver bereit, der bereits ausgeführt wird. Eine Erläuterung der möglichen SmartClientTransport-Werte finden Sie unter Aktivieren eines Smart Client.

-ein Erweiterung
Legt die Standarderweiterungs-DLL fest. Der Standardwert ist kdextx86.dll oder kdexts.dll. Nach dem "a" darf kein Leerzeichen vorhanden sein, und die Dateinamenerweiterung .dll darf nicht eingeschlossen werden. Ausführliche Informationen und andere Methoden zum Festlegen dieser Standardeinstellung finden Sie unter Laden von Debuggererweiterungs-DLLs.

-b
Diese Option wird nicht mehr unterstützt.

-c " Befehl "
Gibt den anfänglichen Debuggerbefehl an, der beim Start ausgeführt werden soll. Dieser Befehl muss in Anführungszeichen eingeschlossen werden. Mehrere Befehle können durch Semikolons getrennt werden. (Wenn Sie über eine lange Befehlsliste verfügen, ist es möglicherweise einfacher, sie in ein Skript einzufügen, und verwenden Sie dann die Option -c mit dem Befehl $<, $><, $><, $, $$>< (Skriptdatei ausführen).)

Wenn Sie einen Debugclient starten, muss dieser Befehl für den Debugserver vorgesehen sein. Clientspezifische Befehle, z . B. Lsrcpath, sind nicht zulässig.

-Clines Linien
Legt die ungefähre Anzahl von Befehlen im Befehlsverlauf fest, auf die während des Remotedebuggings zugegriffen werden kann. Ausführliche Informationen und weitere Möglichkeiten zum Ändern dieser Nummer finden Sie unter Verwenden von Debuggerbefehlen.

-d
(Nur Kernelmodus) Nach einem Neustart wechselt der Debugger in den Zielcomputer, sobald ein Kernelmodul geladen wird. (Dieser Umbruch ist früher als der Umbruch von der Option -b .) Weitere Informationen zum Ändern dieses Status finden Sie unter "Absturz" und "Neustarten des Zielcomputers ".

-ee {masm|c++}
Legt den Standardausdruck-Evaluator fest. Wenn masm angegeben ist, wird die Syntax des MASM-Ausdrucks verwendet. Wenn c++ angegeben ist, wird die Syntax des C++-Ausdrucks verwendet. Wenn die Option -ee nicht angegeben wird, wird die MASM-Ausdruckssyntax als Standard verwendet. Details finden Sie unter Auswerten von Ausdrücken .

-failinc
Bewirkt, dass der Debugger alle fragwürdigen Symbole ignoriert. Beim Debuggen einer Benutzermodus- oder Kernelmodus-Minidumpdatei verhindert diese Option auch, dass der Debugger Module lädt, deren Bilder nicht zugeordnet werden können. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_EXACT_SYMBOLS.

-g
(Nur Benutzermodus) Ignoriert den anfänglichen Haltepunkt in der Zielanwendung. Diese Option bewirkt, dass die Zielanwendung nach dem Starten weiter ausgeführt wird, oder WinDbg fügt sie an, es sei denn, ein anderer Haltepunkt wurde festgelegt. Details finden Sie unter "Anfänglicher Haltepunkt ".

-G
(Nur Benutzermodus) Ignoriert den endgültigen Haltepunkt beim Beenden des Prozesses. In der Regel endet die Debugsitzung während des Image-Ausführungsprozesses. Diese Option bewirkt, dass die Debugsitzung sofort beendet wird, wenn das untergeordnete Element beendet wird. Dies hat die gleiche Wirkung wie das Eingeben des Befehls -sxd epr. Weitere Informationen finden Sie unter Steuern von Ausnahmen und Ereignissen.

-Festplatte
(Nur Benutzermodus) Gibt an, dass der Debug-Heap nicht verwendet werden soll.

-I[S]
Installiert WinDbg als postmortem Debugger. Ausführliche Informationen finden Sie unter Aktivieren des Postmortem-Debuggings.

Nachdem diese Aktion versucht wurde, wird eine Erfolgs- oder Fehlermeldung angezeigt. Wenn S enthalten ist, wird dieses Verfahren im Hintergrund ausgeführt, wenn es erfolgreich ist. Es werden nur Fehlermeldungen angezeigt.

Der Parameter -I darf nicht mit anderen Parametern verwendet werden. Dieser Befehl startet WinDbg nicht, obwohl ein WinDbg-Fenster für einen Moment angezeigt wird.

-IA[S]
Ordnet WinDbg den Dateierweiterungen .dmp, MDMP und WEW in der Registrierung zu. Nachdem diese Aktion versucht wurde, wird eine Erfolgs- oder Fehlermeldung angezeigt. Wenn S enthalten ist, wird dieses Verfahren im Hintergrund ausgeführt, wenn es erfolgreich ist. Es werden nur Fehlermeldungen angezeigt. Nachdem diese Zuordnung vorgenommen wurde, wird WinDbg gestartet, indem Sie eine Datei mit einer dieser Erweiterungen auswählen (oder mit der rechten Maustaste darauf klicken).

Der Parameter -IA darf nicht mit anderen Parametern verwendet werden. Dieser Befehl startet WinDbg nicht, obwohl ein WinDbg-Fenster für einen Moment angezeigt wird.

-IE KeyString
Registriert debuggerremoting als URL-Typ, damit Benutzer einen Debugger-Remoteclient mit einer URL automatisch starten können. KeyString weist das Format remdbgeng://RemotingOptionauf. RemotingOption ist eine Zeichenfolge, die das Transportprotokoll definiert, wie im Thema Aktivieren eines Debugclients definiert. Wenn diese Aktion erfolgreich ist, wird keine Meldung angezeigt. wenn ein Fehler auftritt, wird eine Fehlermeldung angezeigt.

Der Parameter "-IU " darf nicht mit anderen Parametern verwendet werden. Obwohl ein WinDbg-Fenster für einen Moment angezeigt werden kann, startet dieser Befehl WinDbg nicht.

-Ich ImagePath
Gibt den Speicherort der ausführbaren Dateien an, die den Fehler generiert haben. Wenn der Pfad Leerzeichen enthält, sollte er in Anführungszeichen eingeschlossen werden.

-j
Journaling zulassen.

-k [ConnectType]
(Nur Kernelmodus) Startet eine Kerneldebuggingsitzung. Ausführliche Informationen finden Sie unter Live Kernelmodus-Debugging mit WinDbg (Klassisch). Wenn "-k " ohne ConnectType-Optionen verwendet wird, muss es sich um den endgültigen Eintrag in der Befehlszeile handelt.

-Kl
(Nur Kernelmodus) Startet eine Kerneldebuggingsitzung auf demselben Computer wie der Debugger.

-kx ExdiOptions
(Nur Kernelmodus) Startet eine Kerneldebugsitzung mit einem EXDI-Treiber. Weitere Informationen zu EXDI finden Sie unter Configuring the EXDI Debugger Transport.

-log{o|a} LogFile
Beginnt mit der Protokollierung von Informationen in einer Protokolldatei. Wenn die angegebene Protokolldatei bereits vorhanden ist, wird sie überschrieben, wenn -logo verwendet wird. Wenn loga verwendet wird, wird die Ausgabe an die Datei angefügt. Weitere Informationen finden Sie unter Beibehalten einer Protokolldatei in WinDbg.

-lsrcpath
Legt den lokalen Quellpfad für einen Remoteclient fest. Diese Option muss auf der Befehlszeile "-remote" folgen.

-n
Lautes Symbolladevorgang: Ermöglicht ausführliche Ausgabe des Symbolhandlers. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_DEBUG.

-noinh
(Nur Benutzermodus) Verhindert, dass vom Debugger erstellte Prozesse Handles vom Debugger erben. Weitere Methoden zur Steuerung dieses Vorgangs finden Sie unter Debuggen eines Benutzermodusprozesses mithilfe von WinDbg.

-noprio
Verhindert eine Änderung der Priorität. Mit diesem Parameter wird verhindert, dass WinDbg während des Aktiven die Priorität für die CPU-Zeit einnimmt.

-noshell
Verbietet alle SHELL-Befehle . Dieses Verbot dauert solange, wie der Debugger ausgeführt wird, auch wenn eine neue Debugsitzung begonnen wird. Ausführliche Informationen und weitere Möglichkeiten zum Deaktivieren von Shellbefehlen finden Sie unter Verwenden von Shellbefehlen.

-o
(Nur Benutzermodus) Debugt alle Prozesse, die von der Zielanwendung (untergeordnete Prozesse) gestartet werden. Standardmäßig werden Prozesse, die von dem Debuggen erstellt wurden, wie gewohnt ausgeführt.

-openPrivateDumpByHandle Griff
Gibt das Handle einer Absturzabbilddatei an, die gedebuggt werden soll.

-p PID
Gibt die dezimale Prozess-ID an, die gedebuggt werden soll. Dies wird verwendet, um einen Prozess zu debuggen, der bereits ausgeführt wird.

-Pb
(Nur Benutzermodus) Verhindert, dass der Debugger beim Anfügen an einen Zielprozess eine anfängliche Unterbrechung anfordert. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten ist oder wenn Sie das Erstellen eines Unterbrechungsthreads im Ziel vermeiden möchten.

-Pd
(Nur Benutzermodus) Bewirkt, dass die Zielanwendung nicht am Ende der Debugsitzung beendet wird. Details finden Sie unter Beenden einer Debugsitzung in WinDbg (Klassisch ).

-Pe
(Nur Benutzermodus) Gibt an, dass die Zielanwendung bereits gedebuggt wird. Weitere Informationen finden Sie unter "Erneutes Anfügen an die Zielanwendung ".

-Pn Name
Gibt den Namen des zu debuggenden Prozesses an. (Dieser Name muss eindeutig sein.) Dies wird verwendet, um einen Prozess zu debuggen, der bereits ausgeführt wird.

-Öffentlichkeitsarbeit
(Nur Benutzermodus) Bewirkt, dass der Debugger den Zielprozess startet, der beim Anfügen ausgeführt wird. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten ist und Sie möchten, dass die Ausführung fortgesetzt wird.

-Psn ServiceName
Gibt den Namen eines Diensts an, der im Prozess enthalten ist, der gedebuggt werden soll. Dies wird verwendet, um einen Prozess zu debuggen, der bereits ausgeführt wird.

-Pt Nachschlag
Gibt das Breaktimeout in Sekunden an. Der Standard ist 30. Details finden Sie unter "Steuern des Ziels ".

-Pv
(Nur Benutzermodus) Gibt an, dass der Debugger nicht invasiv an den Zielprozess angefügt werden soll. Ausführliche Informationen finden Sie unter Noninvasive Debugging (Benutzermodus).

-Q
Unterdrückt das Dialogfeld "Arbeitsbereich speichern?". Arbeitsbereiche werden nicht automatisch gespeichert. Details finden Sie unter Verwenden von Arbeitsbereichen – WinDbg (Klassisch ).

-QS
Unterdrückt das Dialogfeld "Quelle erneut laden?". Quelldateien werden nicht automatisch neu geladen.

-QSY
Unterdrückt das Dialogfeld "Quelle erneut laden?" und lädt Quelldateien automatisch neu.

-QY
Unterdrückt das Dialogfeld "Arbeitsbereich speichern?" und speichert Arbeitsbereiche automatisch. Details finden Sie unter Verwenden von Arbeitsbereichen – WinDbg (Klassisch ).

-robp
Dadurch kann CDB einen Haltepunkt auf einer schreibgeschützten Speicherseite festlegen. (Der Standardwert ist dafür, dass ein solcher Vorgang fehlschlägt.)

-sdce
Bewirkt, dass der Debugger Fehlermeldungen beim Laden des Dateizugriffs anzeigt. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_FAIL_CRITICAL_ERRORS.

-sicher
Aktiviert den abgesicherten Modus.

-Ses
Bewirkt, dass der Debugger eine strikte Auswertung aller Symboldateien durchführt und alle fragwürdigen Symbole ignoriert. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_EXACT_SYMBOLS.

-sflags 0x Zahl
Legt alle Symbolhandleroptionen auf einmal fest. "Zahl " sollte eine hexadezimale Zahl mit dem Präfix 0x sein– eine Dezimalzahl ohne 0x ist zulässig, aber die Symboloptionen sind binäre Flags und daher wird hexadezimal empfohlen. Diese Option sollte mit Bedacht verwendet werden, da sie alle Standardeinstellungen des Symbolhandlers überschreibt. Weitere Informationen finden Sie unter Festlegen von Symboloptionen.

-sicv
Bewirkt, dass der Symbolhandler den CV-Eintrag ignoriert. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_IGNORE_CVREC.

-Sünden
Bewirkt, dass der Debugger die Symbolpfad- und ausführbaren Bildpfad-Umgebungsvariablen ignoriert. Ausführliche Informationen finden Sie unter SYMOPT_IGNORE_NT_SYMPATH.

-snc
Bewirkt, dass der Debugger die C++-Übersetzung deaktiviert. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_NO_CPP.

-snul
Deaktiviert das automatische Laden von Symbolen für nicht qualifizierte Namen. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_NO_UNQUALIFIED_LOADS.

-srcpath SourcePath
Gibt den Pfad für die Quelldateisuche an. Trennen Sie mehrere Pfade durch ein Semikolon (;). Wenn der Pfad Leerzeichen enthält, sollte er in Anführungszeichen eingeschlossen werden. Ausführliche Informationen und weitere Möglichkeiten zum Ändern dieses Pfads finden Sie unter "Quellpfad".

-schlürfen
Bewirkt, dass der Symbolhandler während jeder Symbolsuche die öffentliche Symboltabelle durchsucht. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_AUTO_PUBLICS.

-T Titel
Legt den WinDbg-Fenstertitel fest.

-v
Aktiviert ausführliche Ausgabe des Debuggers.

-W Arbeitsbereich
Lädt den angegebenen benannten Arbeitsbereich. Wenn der Arbeitsbereichsname Leerzeichen enthält, schließen Sie ihn in Anführungszeichen ein. Wenn kein Arbeitsbereich dieses Namens vorhanden ist, erhalten Sie die Möglichkeit, einen neuen Arbeitsbereich mit diesem Namen zu erstellen oder den Ladeversuch aufzugeben. Ausführliche Informationen finden Sie unter Verwenden von Arbeitsbereichen – WinDbg (Klassisch).

-WF Dateiname
Lädt den Arbeitsbereich aus der angegebenen Datei. Der Dateiname sollte die Datei und die Erweiterung (normalerweise WEW) enthalten. Wenn der Arbeitsbereichsname Leerzeichen enthält, schließen Sie ihn in Anführungszeichen ein. Wenn keine Arbeitsbereichsdatei mit diesem Namen vorhanden ist, haben Sie die Möglichkeit, eine neue Arbeitsbereichsdatei mit diesem Namen zu erstellen oder den Ladeversuch aufzugeben. Ausführliche Informationen finden Sie unter Verwenden von Arbeitsbereichen – WinDbg (Klassisch).

-WX
Deaktiviert das automatische Laden des Arbeitsbereichs. Ausführliche Informationen finden Sie unter Verwenden von Arbeitsbereichen – WinDbg (Klassisch).

-y SymbolPath
Gibt den Suchpfad des Symbols an. Trennen Sie mehrere Pfade durch ein Semikolon (;). Wenn der Pfad Leerzeichen enthält, sollte er in Anführungszeichen eingeschlossen werden. Ausführliche Informationen und weitere Möglichkeiten zum Ändern dieses Pfads finden Sie unter "Symbolpfad".

-z DumpFile
Gibt den Namen einer Absturzabbilddatei an, die gedebuggt werden soll. Wenn der Pfad und der Dateiname Leerzeichen enthalten, muss dies von Anführungszeichen umgeben sein. Es ist möglich, mehrere Dumpdateien gleichzeitig zu öffnen, indem mehrere -z-Optionen eingeschlossen werden, gefolgt von einem anderen DumpFile-Wert . Ausführliche Informationen finden Sie unter Analysieren einer Abbilddatei für den Benutzermodus oder Analysieren einer Kernelmodus-Dumpdatei mit WinDbg.

-zp PageFile
Gibt den Namen einer geänderten Seitendatei an. Dies ist nützlich, wenn Sie eine Speicherabbilddatei debuggen und den BEFEHL PAGEIN (Seite im Arbeitsspeicher) verwenden möchten. Sie können "-zp" nicht mit einer standardmäßigen Windows-Seitendatei verwenden – nur speziell geänderte Seitendateien können verwendet werden.

ausführbar
Gibt die Befehlszeile eines ausführbaren Prozesses an. Dies wird verwendet, um einen neuen Prozess zu starten und zu debuggen. Dies muss das letzte Element in der Befehlszeile sein. Der gesamte Text nach dem ausführbaren Namen wird als Argumentzeichenfolge an die ausführbare Datei übergeben. Ausführliche Informationen finden Sie unter Debuggen eines Benutzermodusprozesses mit WinDbg.

-?
Dieses HTML-Hilfefenster wird eingeblendt.

Wenn Sie den Debugger über die Befehlszeile ausführen, geben Sie argumente für die Zielanwendung nach dem Dateinamen der Anwendung an. Beispiel:

windbg myexe arg1 arg2