Share via


KD-Command-Line-Optionen

Erstmalige Benutzer von KD sollten mit dem Abschnitt Debuggen mithilfe von KD und NTKD beginnen.

Die KD-Befehlszeile verwendet die folgende Syntax.

kd [ -server ServerTransport | -remote ClientTransport ] 
   [-b | -x] [-d] [-bonc] [-m] [-myob] [-lines] [-n] [-r] [-s] 
   [-v] [-clines lines] [-failinc] [-noio] [-noshell] 
   [-secure] [-sdce] [-ses] [-sicv] [-sins] [-snc] [-snul]
   [-sup] [-sflags 0xNumber] [-log{a|au|o|ou} LogFile] 
   [-aExtension] [-zp PageFile] 
   [-i ImagePath] [-y SymbolPath]  [-srcpath SourcePath] 
   [-k ConnectType | -kl | -kqm | -kx ExdiOptions] [-ee {masm|c++}] 
   [-z DumpFile] [-cf "filename"] [-cfr "filename"] [-c "command"] 
   [-t PrintErrorLevel] [-version] 

kd -iu KeyString

kd -QR Server 

kd -wake PID 

kd -?

Beschreibungen der KD-Befehlszeilenoptionen folgen. Nur bei den Optionen -remote und -server wird die Groß-/Kleinschreibung beachtet. Der anfängliche Bindestrich kann durch einen Schrägstrich (/) ersetzt werden. Optionen, die keine zusätzlichen Parameter verwenden, können verkettet werden, sodass kd -r -n -v als kd -rnv geschrieben werden kann.

Wenn die Option -remote oder -server verwendet wird, muss sie vor allen anderen Optionen in der Befehlszeile angezeigt werden.

Parameter

-serverServerTransport
Erstellt einen Debugserver, auf den andere Debugger zugreifen können. Eine Erläuterung des möglichen ServerTransports 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.

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

-bonc
Wenn diese Option angegeben ist, wird der Debugger in das Ziel einbrechen, sobald die Sitzung beginnt. Dies ist besonders nützlich, wenn Sie eine Verbindung mit einem Debugserver herstellen, der derzeit möglicherweise nicht in das Ziel unterteilt ist.

-c "Command"
Gibt den anfänglichen Debuggerbefehl an, der beim Start ausgeführt werden soll. Dieser Befehl muss mit Anführungszeichen umgeben sein. 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.

-cf "filename"
Gibt den Pfad und Namen einer Skriptdatei an. Diese Skriptdatei wird ausgeführt, sobald der Debugger gestartet wird. Wenn dateiname Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Wenn der Pfad ausgelassen wird, wird das aktuelle Verzeichnis angenommen. Wenn die Option -cf nicht verwendet wird, wird die Datei ntsd.ini im aktuellen Verzeichnis als Skriptdatei verwendet. Wenn die Datei nicht vorhanden ist, tritt kein Fehler auf. Weitere Informationen finden Sie unter Verwenden von Skriptdateien.

-cfr "filename"
Gibt den Pfad und Namen einer Skriptdatei an. Diese Skriptdatei wird ausgeführt, sobald der Debugger gestartet wird, und jedes Mal, wenn das Ziel neu gestartet wird. Wenn dateiname Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Wenn der Pfad ausgelassen wird, wird das aktuelle Verzeichnis angenommen. Wenn die Datei nicht vorhanden ist, tritt kein Fehler auf. Weitere Informationen finden Sie unter Verwenden von Skriptdateien.

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

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

-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. Mit diesem Befehl wird KD nicht gestartet.

-kConnectType
Teilt dem Debugger mit, wie eine Verbindung mit dem Ziel hergestellt werden soll. Weitere Informationen finden Sie unter Debuggen mit KD und NTKD.

-Kl
Startet eine Kerneldebugsitzung auf demselben Computer wie der Debugger.

-kqm
Startet KD im stillen Modus.

-kxExdiOptions
Startet eine Kerneldebugsitzung mit einem EXDI-Treiber. EXDI-Treiber werden in dieser Dokumentation nicht beschrieben. Wenn Sie über eine EXDI-Schnittstelle zu Ihrem Hardwaretest oder Hardwaresimulator verfügen, wenden Sie sich an Microsoft, um Debuginformationen zu erhalten.

-Linien
Aktiviert das Debuggen von Quellzeilen. Wenn diese Option weggelassen wird, muss der Befehl .lines (Quellzeilenunterstützung umschalten) verwendet werden, bevor das Quelldebuggen zugelassen wird. Weitere Methoden zum Steuern finden Sie unter SYMOPT_LOAD_LINES.

-log{a|au|o|ou} LogFile
Beginnt mit der Protokollierung von Informationen in einer Protokolldatei. Wenn LogFile bereits vorhanden ist, wird sie überschrieben, wenn -logo verwendet wird, oder die Ausgabe wird an die Datei angefügt, wenn -loga verwendet wird. Die Optionen -logau und -logou funktionieren ähnlich wie -loga bzw . -logo , mit der Ausnahme, dass es sich bei der Protokolldatei um eine Unicode-Datei handelt. Weitere Informationen finden Sie unter Beibehalten einer Protokolldatei in KD.

-M
Gibt an, dass der serielle Port mit einem Modem verbunden ist. Weist den Debugger an, für das Carrier-Detect-Signal watch.

-Myob
Wenn ein Versionskonflikt mit dbghelp.dll vorliegt, wird der Debugger weiterhin ausgeführt. (Ohne den Schalter -myob gilt dies als schwerwiegender Fehler.)

Eine sekundäre Auswirkung dieser Option ist, dass die Warnung, die normalerweise beim Aufbrechen auf den Zielcomputer angezeigt wird, unterdrückt wird.

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

-noio
Verhindert, dass der Debugserver für die Eingabe oder Ausgabe verwendet wird. Eingaben werden nur vom Debugclient akzeptiert (zuzüglich aller anfänglichen Befehle oder Befehlsskripts, die durch die Befehlszeilenoption -c angegeben werden).

Die gesamte Ausgabe wird an den Debugclient weitergeleitet. Weitere Informationen finden Sie unter Aktivieren eines Debugservers.

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

-QR-Server
Listet alle Debugserver auf, die auf dem angegebenen Netzwerkserver ausgeführt werden. Der doppelte umgekehrte Schrägstrich (\\) vor Server ist optional. Weitere Informationen finden Sie unter Suchen nach Debugservern .

Der Parameter -QR darf nicht mit anderen Parametern verwendet werden. Mit diesem Befehl wird KD nicht gestartet.

-R
Zeigt Register an.

-s
Deaktiviert das verzögerte Laden von Symbolen. Dadurch wird der Prozessstart verlangsamt. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_DEFERRED_LOADS.

-sdce
Bewirkt, dass der Debugger während des Ladens des Symbols Dialogfelder dateizugriffsfehler 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 während jeder Symbolsuche die öffentliche Symboltabelle durchsucht. Ausführliche Informationen und weitere Methoden zur Steuerung finden Sie unter SYMOPT_AUTO_PUBLICS.

-tPrintErrorLevel
Gibt die Fehlerstufe an, die dazu führt, dass der Debugger eine Fehlermeldung anzeigt. Dies ist eine Dezimalzahl gleich 0, 1, 2 oder 3. Die Werte lassen sich wie folgt beschreiben:

Wert Konstante Bedeutung

0

Keine

Zeigen Sie keine Fehler an.

1

ERROR

Debugereignisse auf FEHLERebene anzeigen.

2

MINORERROR

Zeigt Debugereignisse auf MINORERROR- und ERROR-Ebene an.

3

WARNING

Anzeigen von Debugereignissen auf WARNUNGs-, MINORERROR- und FEHLERebene.

Diese Fehlerstufe hat nur in überprüften Builds von Microsoft Windows Eine Bedeutung. Der Standardwert ist 1. Überprüfte Builds waren unter älteren Versionen von Windows verfügbar, bevor Windows 10 Version 1803.

-V
Generiert ausführliche Meldungen für Ladevorgänge, verzögerte Ladevorgänge und Entladungen.

-Version
Gibt die Debuggerversionszeichenfolge aus.

-wakePID
Bewirkt, dass der Standbymodus für den Benutzermodusdebugger endet, dessen Prozess-ID durch PID angegeben wird. Dieser Befehl muss während des Standbymodus auf dem Zielcomputer ausgegeben werden. Weitere Informationen finden Sie unter Steuern des User-Mode Debuggers über den Kerneldebugger .

Der Parameter -wake darf nicht mit anderen Parametern verwendet werden. Mit diesem Befehl wird KD nicht gestartet.

-X
Bewirkt, dass der Debugger einbricht, wenn eine Ausnahme zum ersten Mal auftritt, anstatt die Anwendung oder das Modul, das die Ausnahme verursacht hat, damit umgehen zu lassen. (Identisch mit -b, außer mit einem anfänglichen eb nt! NtGlobalFlag 9; g-Befehl .)

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

-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 Kernel-Mode-Dumpdatei mit KD.

-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 Standardmäßigen Windows-Seitendatei verwenden. Es können nur speziell geänderte Seitendateien verwendet werden.

-?
Zeigt Befehlszeilenhilfetext an.

KD erkennt automatisch die Plattform, auf der das Ziel ausgeführt wird. Sie müssen das Ziel nicht in der KD-Befehlszeile angeben. Die ältere Syntax (mit dem Namen I386KD oder IA64KD) ist veraltet.