WinDbg-Command-Line-Optionen

Erstmalige Benutzer von WinDbg sollten mit dem Abschnitt Debuggen mithilfe von 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 allen anderen Optionen in der Befehlszeile angezeigt werden. Wenn eine ausführbare Datei angegeben ist, muss sie zuletzt in der Befehlszeile angezeigt werden. Beliebiger Text , nachdem der ausführbare Name als eigene Befehlszeilenparameter an das ausführbare Programm übergeben wurde.

Parameter

-serverServerTransport
Erstellt einen Debugserver, auf den andere Debugger zugreifen können. Eine Erläuterung der möglichen ServerTransport-Werte finden Sie unter Aktivieren eines Debugservers. Wenn dieser Parameter verwendet wird, muss es sich um die ersten Parameter in der Befehlszeile handelt.

-remoteClientTransport
Erstellt einen Debugclient und stellt eine Verbindung mit einem Debugserver her, 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 es sich um die ersten Parameter in der Befehlszeile handelt.

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

-a-Erweiterung
Legt die Standarderweiterungs-DLL fest. Der Standardwert ist kdextx86.dll oder kdexts.dll. Nach "a" darf kein Leerzeichen vorhanden sein, und die .dll Dateinamenerweiterung 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 "Command"
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 dann die Option -c mit dem Befehl $<, $><, $, $><, $$>< (Skriptdatei ausführen) zu verwenden.)

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 Remotedebuggens zugegriffen werden kann. Ausführliche Informationen und weitere Möglichkeiten zum Ändern dieser Zahl finden Sie unter Verwenden von Debuggerbefehlen.

-d
(Nur Kernelmodus) Nach einem Neustart wird der Debugger in den Zielcomputer eingebrochen, sobald ein Kernelmodul geladen wird. (Diese Unterbrechung liegt vor der Unterbrechung der Option -b.) Weitere Informationen und andere Methoden zum Ändern dieser status finden Sie unter Absturz und Neustart des Zielcomputers.

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

-failinc
Bewirkt, dass der Debugger fragwürdige Symbole ignoriert. Beim Debuggen einer Benutzermodus- oder Kernelmodus-Minidumpdatei verhindert diese Option auch, dass der Debugger Module lädt, deren Images 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 Ausführung der Zielanwendung fortgesetzt wird, nachdem sie gestartet wurde, oder WinDbg wird an sie angefügt, es sei denn, es wurde ein anderer Haltepunkt festgelegt. Weitere Informationen 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 Imageausführungsprozesses. Diese Option führt dazu, dass die Debugsitzung sofort beendet wird, wenn das untergeordnete Element beendet wird. Dies hat die gleiche Auswirkung wie die Eingabe des Befehls sxd epr. Weitere Informationen finden Sie unter Steuern von Ausnahmen und Ereignissen.

-Hd
(Nur Benutzermodus) Gibt an, dass der Debugheap nicht verwendet werden soll.

-I[S]
Installiert WinDbg als postmortem-Debugger. Weitere Informationen finden Sie unter Aktivieren des Postmortemdebuggens.

Nachdem diese Aktion versucht wurde, wird eine Erfolgs- oder Fehlermeldung angezeigt. Wenn S enthalten ist, erfolgt dieses Verfahren im Hintergrund, 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 möglicherweise 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, erfolgt dieses Verfahren im Hintergrund, 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 und halten (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 möglicherweise für einen Moment angezeigt wird.

-IUKeyString
Registriert Debuggerremoting als URL-Typ, damit Benutzer einen Debugger-Remoteclient mit einer URL automatisch starten können. KeyString hat das Format remdbgeng://RemotingOption. 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 möglicherweise für einen Moment angezeigt wird, startet dieser Befehl WinDbg nicht.

-iImagePath
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 Kerneldebugsitzung. Weitere Informationen finden Sie unter Live Kernel-Mode Debuggen mit WinDbg (klassisch). Wenn -k verwendet wird, ohne dass connectType-Optionen darauf folgen, muss dies der letzte Eintrag in der Befehlszeile sein.

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

-kxExdiOptions
(Nur Kernelmodus) Startet eine Kerneldebugsitzung mit einem EXDI-Treiber. Weitere Informationen zu EXDI finden Sie unter Konfigurieren des EXDI-Debuggertransports.

-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 -remote in der Befehlszeile folgen.

-N
Lautes Laden von Symbolen: Ermöglicht eine 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 zum Steuern finden Sie unter Debuggen eines User-Mode Prozesses mithilfe von WinDbg.

-noprio
Verhindert jede Änderung der Priorität. Dieser Parameter verhindert, dass WinDbg für die CPU-Zeit priorität hat, während sie aktiv ist.

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

-O
(Nur Benutzermodus) Debuggt alle Prozesse, die von der Zielanwendung (untergeordnete Prozesse) gestartet werden. Standardmäßig werden prozesse, die von dem, den Sie debuggen, erstellt wurden, wie gewohnt ausgeführt.

-openPrivateDumpByHandle-Handle
Gibt das Handle einer zu debuggenden Absturzabbilddatei an.

-pPID
Gibt die zu debuggende Dezimalprozess-ID an. 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 einen ersten Einbruch anfordert. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten ist oder Wenn Sie das Erstellen eines Einbruchthreads im Ziel vermeiden möchten.

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

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

-pnName
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.

-Pr
(Nur Benutzermodus) Bewirkt, dass der Debugger den Zielprozess startet, der ausgeführt wird, wenn er an ihn angefügt wird. Dies kann hilfreich sein, wenn die Anwendung bereits angehalten ist und Sie die Ausführung fortsetzen möchten.

-psnServiceName
Gibt den Namen eines Diensts an, der im zu debuggenden Prozess enthalten ist. Dies wird verwendet, um einen Prozess zu debuggen, der bereits ausgeführt wird.

-ptSekunden
Gibt das Breaktimeout in Sekunden an. Der Standardwert ist 30. Weitere Informationen finden Sie unter Steuern des Ziels .

-Pv
(Nur Benutzermodus) Gibt an, dass der Debugger nicht invasiv an den Zielprozess angefügt werden soll. Weitere Informationen finden Sie unter Nichtinvasives Debuggen (Benutzermodus).

-Q
Unterdrückt das Dialogfeld "Arbeitsbereich speichern?". Arbeitsbereiche werden nicht automatisch gespeichert. Weitere Informationen 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. Weitere Informationen finden Sie unter Verwenden von Arbeitsbereichen – WinDbg (klassisch).

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

-sdce
Bewirkt, dass der Debugger während des Ladens des Symbols Fehlermeldungen für den Dateizugriff anzeigt. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_FAIL_CRITICAL_ERRORS.

-Sichere
Aktiviert den sicheren 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 0xNumber
Legt alle Symbolhandleroptionen gleichzeitig 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 Sorgfalt 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 Umgebungsvariablen Symbolpfad und ausführbare Imagepfade ignoriert. Weitere 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.

-snulul
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.

-srcpathSourcePath
Gibt den Suchpfad der Quelldatei 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.

-Sup
Bewirkt, dass der Symbolhandler die öffentliche Symboltabelle bei jeder Symbolsuche durchsucht. Ausführliche Informationen und weitere Methoden zum Steuern finden Sie unter SYMOPT_AUTO_PUBLICS.

-TTitle
Legt den Titel des WinDbg-Fensters fest.

-V
Aktiviert ausführliche Ausgabe vom Debugger.

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

-WF-Dateiname
Lädt den Arbeitsbereich aus der angegebenen Datei. 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 abzubrechen. 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).

-ySymbolPath
Gibt den Symbolsuchpfad 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.

-zDumpFile
Gibt den Namen einer Zu debuggenden Absturzabbilddatei an. Wenn der Pfad und der Dateiname Leerzeichen enthalten, müssen diese von Anführungszeichen umgeben sein. Es ist möglich, mehrere Dumpdateien gleichzeitig zu öffnen, indem mehrere -z-Optionen eingeschlossen werden, jede gefolgt von einem anderen DumpFile-Wert . Ausführliche Informationen finden Sie unter Analysieren einer User-Mode-Dumpdatei oder Analysieren einer Kernel-Mode-Dumpdatei mit WinDbg.

-zpPageFile
Gibt den Namen einer geänderten Seitendatei an. Dies ist nützlich, wenn Sie eine Dumpdatei debuggen und den Befehl .pagein (Page In Memory) verwenden möchten. Sie können -zp nicht mit einer Windows-Standardseitendatei verwenden. Es können nur speziell geänderte Seitendateien verwendet werden.

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

-?
Dieses HTML-Hilfefenster wird geöffnet.

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

windbg myexe arg1 arg2