KD-Befehlszeilenoptionen
Erstmalige Benutzer von KD sollten mit dem Abschnitt "Debuggen mit 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. 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 übernehmen, können verkettet werden - so kd -r -n -v kann als kd -rnv geschrieben werden.
Wenn die Option "-remote " oder "-server " verwendet wird, muss sie vor anderen Optionen in der Befehlszeile angezeigt werden.
Parameter
-Server ServerTransport
Erstellt einen Debugserver, auf den von anderen Debuggern zugegriffen werden kann. Eine Erläuterung des möglichen ServerTransports 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.
-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.
-bonc
Wenn diese Option angegeben ist, wechselt der Debugger in das Ziel, sobald die Sitzung beginnt. Dies ist besonders hilfreich beim Herstellen einer Verbindung mit einem Debugserver, der möglicherweise nicht in das Ziel unterteilt ist.
-c "befehl"
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 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.
-cf "Filename"
Gibt den Pfad und den Namen einer Skriptdatei an. Diese Skriptdatei wird ausgeführt, sobald der Debugger gestartet wird. Wenn der Dateiname Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Wenn der Pfad nicht angegeben 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. Ausführliche Informationen finden Sie unter Verwenden von Skriptdateien.
-cfr "Filename"
Gibt den Pfad und den Namen einer Skriptdatei an. Diese Skriptdatei wird ausgeführt, sobald der Debugger gestartet wird, und jedes Mal, wenn das Ziel neu gestartet wird. Wenn der Dateiname Leerzeichen enthält, muss er in Anführungszeichen eingeschlossen werden. Wenn der Pfad nicht angegeben wird, wird das aktuelle Verzeichnis angenommen. Wenn die Datei nicht vorhanden ist, tritt kein Fehler auf. Ausführliche Informationen finden Sie unter Verwenden von Skriptdateien.
-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
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.
-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.
-Ie KeyString
Registriert debuggerremoting als URL-Typ, damit Benutzer einen Debugger-Remoteclient mit einer URL automatisch starten können. KeyString weist das Format remdbgeng://RemotingOption
auf. 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. Dieser Befehl startet keine KD.
-k ConnectType
Teilt dem Debugger mit, wie eine Verbindung mit dem Ziel hergestellt werden soll. Ausführliche Informationen finden Sie unter Debuggen mit KD und NTKD.
-Kl
Startet eine Kerneldebuggingsitzung auf demselben Computer wie der Debugger.
-kqm
Startet KD im ruhen Modus.
-kx ExdiOptions
Startet eine Kerneldebugsitzung mit einem EXDI-Treiber. EXDI-Treiber werden in dieser Dokumentation nicht beschrieben. Wenn Sie über eine EXDI-Schnittstelle zu Ihrem Hardwaresonden- oder Hardwaresimulator verfügen, wenden Sie sich an Microsoft, um Informationen zum Debuggen zu erhalten.
-Linien
Aktiviert das Debuggen von Quellzeilen. Wenn diese Option nicht angegeben wird, muss der Befehl ".lines" (Quellzeilenunterstützung umschalten) verwendet werden, bevor das Quelldebugging zulässig ist. Weitere Methoden zur Steuerung 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 Anschluss an ein Modem angeschlossen ist. Weist den Debugger an, das Netzbetreibererkennungssignal zu überwachen.
-Myob
Wenn ein Versionskonflikt mit dbghelp.dll besteht, wird der Debugger weiterhin ausgeführt. (Ohne den Schalter "-myob " wird dies als schwerwiegender Fehler betrachtet.)
Eine sekundäre Auswirkung dieser Option besteht darin, dass die Warnung, die normalerweise angezeigt wird, wenn sie in den Zielcomputer unterteilt wird, unterdrückt wird.
-n
Lautes Symbolladevorgang: Ermöglicht 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 Eingaben oder Ausgaben verwendet wird. Eingaben werden nur vom Debugclient akzeptiert (plus alle anfänglichen Befehle oder Befehlsskripts, die durch die Befehlszeilenoption -c angegeben sind).
Alle Ausgaben werden an den Debugging-Client weitergeleitet. Weitere Informationen finden Sie unter Aktivieren eines Debugservers.
-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.
-QR Server
Listet alle Debugserver auf, die auf dem angegebenen Netzwerkserver ausgeführt werden. Der doppelte umgekehrte Schrägstrich (\\) vor dem Server ist optional. Details finden Sie unter Suchen nach Debugservern.
Der PARAMETER -QR darf nicht mit anderen Parametern verwendet werden. Dieser Befehl startet keine KD.
-r
Zeigt Register an.
-s
Deaktiviert das Laden von faulen 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 beim Laden des Symbols Fehlerdialogfelder für den Dateizugriff 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 0xZahl
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 PrintErrorLevel
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 |
NONE |
Keine Fehler anzeigen. |
1 |
FEHLER |
Fehlerebenendebuggingereignisse anzeigen. |
2 |
MINORERROR |
Anzeigen von Debuggingereignissen auf MINORERROR- und ERROR-Ebene |
3 |
WARNUNG |
Anzeigen von Debugereignissen auf WARNUNGs-, MINORERROR- und ERROR-Ebene. |
Diese Fehlerstufe hat nur bedeutung in überprüften Builds von Microsoft Windows. Der Standardwert ist 1. Geprüfte Builds waren für ältere Windows-Versionen vor Windows 10 Version 1803 verfügbar.
-v
Generiert ausführliche Nachrichten für Ladevorgänge, verzögerte Lasten und Entladungen.
-Version
Druckt die Debuggerversionszeichenfolge.
-aufwachen PID
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. Details finden Sie unter Steuern des Benutzermodusdebuggers aus dem Kerneldebugger.
Der Parameter "-wake" darf nicht mit anderen Parametern verwendet werden. Dieser Befehl startet keine KD.
-x
Bewirkt, dass der Debugger beim ersten Auftreten einer Ausnahme einbricht, anstatt die Anwendung oder das Modul zuzulassen, die die Ausnahme verursacht hat. (Identisch mit -b, mit Ausnahme eines anfänglichen eb nt! NtGlobalFlag 9; g Befehl.)
-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 Kernelmodus-Speicherabbilddatei mit KD.
-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.
-?
Zeigt den 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.