KD 命令列選項
KD 的第一次用戶應該從使用 KD 和 NTKD 進行偵錯一節開始。
KD 命令行會使用下列語法。
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 -?
KD 命令列選項的描述如下。 只有 -remote 和 -server 選項會區分大小寫。 初始連字元可以取代為正斜線 (/)。 不採用任何其他參數的選項可以串連 -- 因此 kd -r -n -v 可以撰寫為 kd -rnv。
如果使用 -remote 或 -server 選項,則必須出現在命令行上的任何其他選項之前。
參數
-伺服器 ServerTransport
建立可由其他調試程式存取的偵錯伺服器。 如需可能 ServerTransport 的說明,請參閱啟用偵錯伺服器。 使用此參數時,它必須是命令行上的第一個參數。
-遠端 ClientTransport
建立偵錯用戶端,並連接到已經執行的偵錯伺服器。 如需可能 ClientTransport 值的說明,請參閱啟用偵錯用戶端。 使用此參數時,它必須是命令行上的第一個參數。
-一個 外延
設定預設擴充 DLL。 預設值為 kdextx86.dll 或 kdexts.dll。 在 「a」 之後不得有空格,而且不得包含.dll擴展名。 如需設定此預設值的詳細資訊和其他方法,請參閱 載入調試程式擴充功能 DLL。
-b
已不再支援此選項。
-bonc
如果指定此選項,調試程式會在會話開始時立即中斷目標。 當連線到目前可能未損入目標的偵錯伺服器時,這特別有用。
-c ”command”
指定要在啟動時執行的初始調試程式命令。 此命令必須以引弧括住。 您可以使用分號分隔多個命令。 (如果您有很長的命令清單,可能更容易將它們放在腳本中,然後使用 -c 選項搭配 $<、$、$><、$><、><$(執行腳本檔案)命令。
如果您要啟動偵錯用戶端,此命令必須適用於偵錯伺服器。 不允許用戶端特定命令,例如 .lsrcpath。
-cf ”filename”
指定文稿檔案的路徑和名稱。 啟動調試程序之後,就會立即執行此腳本檔案。 如果 檔名 包含空格,則必須以引弧括住。 如果省略路徑,則會假設目前的目錄。 如果未使用 -cf 選項,則目前目錄中的檔案ntsd.ini會當做腳本檔案使用。 如果檔案不存在,則不會發生錯誤。 如需詳細資訊,請參閱 使用腳本檔案。
-cfr ”filename”
指定文稿檔案的路徑和名稱。 此腳本檔案會在調試程序啟動后立即執行,而且每當重新啟動目標時。 如果 檔名 包含空格,則必須以引弧括住。 如果省略路徑,則會假設目前的目錄。 如果檔案不存在,則不會發生錯誤。 如需詳細資訊,請參閱 使用腳本檔案。
-clines 線
設定可在遠端偵錯期間存取之命令歷程記錄中的大約命令數目。 如需詳細資訊,以及變更此號碼的其他方式,請參閱 使用調試程式命令。
-d
重新啟動之後,調試程式會在載入核心模組時立即進入目標計算機。 (此中斷時間早於 -b 選項的中斷。如需變更此狀態的其他方法的詳細資訊,請參閱當機並重新啟動目標計算機。
-ee {masm|c++}
設定預設表達式評估工具。 如果 指定masm ,則會使用MASM表示式語法。 如果 指定 c++ ,則會使用C++運算式語法。 如果省略 -ee 選項,則會使用MASM表示式語法做為預設值。 如需詳細資訊,請參閱 評估表達式 。
-failinc
讓調試程式忽略任何可疑的符號。 偵錯使用者模式或內核模式迷你傾印檔案時,此選項也會防止調試程式載入無法對應映像的任何模組。 如需控制此動作的詳細資訊和其他方法,請參閱 SYMOPT_EXACT_SYMBOLS。
-我 ImagePath
指定產生錯誤的可執行檔案位置。 如果路徑包含空格,則應該以引弧括住。
-iu KeyString
將調試程式遠端登錄為 URL 類型,讓使用者可以使用 URL 自動啟動調試程式遠端用戶端。 KeyString 格式為 remdbgeng://RemotingOption
。 RemotingOption 是字串,定義啟用偵錯用戶端主題中所定義的傳輸通訊協定。 如果此動作成功,則不會顯示任何訊息;如果失敗,則會顯示錯誤訊息。
-iu 參數不得搭配任何其他參數使用。 此命令實際上不會啟動 KD。
-k ConnectType
告知調試程式如何連線到目標。 如需詳細資訊,請參閱 使用 KD 和 NTKD 進行偵錯。
-kl
在與調試程式相同的計算機上啟動核心偵錯會話。
-kqm
以無訊息模式啟動 KD。
-kx ExdiOptions
使用 EXDI 驅動程式啟動核心偵錯工作階段。 本文件並未說明 EXDI 驅動程式。 如果您有硬體探查或硬體模擬器的 EXDI 介面,請連絡Microsoft以取得偵錯資訊。
-線
啟用原始程式行偵錯。 如果省略此選項, 則必須使用 .lines (切換來源行支援) 命令,才能允許來源偵錯。 如需控制這個的其他方法,請參閱 SYMOPT_LOAD_LINES。
-log{a|au|o|ou} LogFile
開始將資訊記錄到記錄檔。 如果 LogFile 已經存在,則會在使用 -logo 時覆寫它,如果使用 -loga,則會將輸出附加至檔案。 -logau 和 -logou 選項分別運作類似 -loga 和 -logo,不同之處在於記錄檔是 Unicode 檔案。 如需詳細資訊,請參閱 在 KD 中保留記錄檔。
-m
表示序列埠已連線到數據機。 指示調試程式監看電信業者偵測訊號。
-myob
如果版本與dbghelp.dll不符,調試程式將會繼續執行。 (如果沒有 -myob 參數,這被視為嚴重錯誤。
這個選項的次要效果是隱藏進入目標計算機時,通常會出現的警告。
-n
Noisy 符號載入:啟用符號處理程式的詳細信息輸出。 如需詳細數據,以及控制此動作的其他方法,請參閱 SYMOPT_DEBUG。
-noio
防止偵錯伺服器用於輸入或輸出。 輸入只會從偵錯用戶端接受(加上 -c 命令行選項所指定的任何初始命令或命令腳本)。
所有輸出都會導向至偵錯用戶端。 如需詳細資訊,請參閱 啟用偵錯伺服器。
-noshell
禁止所有 .shell 命令。 只要調試程式正在執行,這項禁令就會持續,即使開始新的偵錯會話也一樣。 如需詳細資訊,以及停用殼層命令的其他方式,請參閱 使用殼層命令。
-QR 伺服器
列出在指定之網路伺服器上執行的所有偵錯伺服器。 雙反斜杠 (\\) 前 一個伺服器 是選擇性的。 如需詳細資訊,請參閱搜尋偵錯伺服器。
-QR 參數不得與任何其他參數搭配使用。 此命令實際上不會啟動 KD。
-r
顯示快取器。
-s
停用延遲符號載入。 這會讓進程啟動變慢。 如需詳細數據,以及控制此動作的其他方法,請參閱 SYMOPT_DEFERRED_LOADS。
-sdce
讓調試程式在符號載入期間顯示 [ 檔案存取錯誤 ] 對話框。 如需詳細數據,以及控制此動作的其他方法,請參閱 SYMOPT_FAIL_CRITICAL_ERRORS。
-安全
啟用 安全模式。
-ses
讓調試程式對所有符號檔執行嚴格的評估,並忽略任何可疑的符號。 如需控制此動作的詳細資訊和其他方法,請參閱 SYMOPT_EXACT_SYMBOLS。
-sflags 0x數
一次設定所有符號處理程序選項。 Number 應該是前置詞為 0x 的十六進位數位 -- 允許沒有 0x 的十進位數位,但符號選項是二進位旗標,因此建議使用十六進位。 此選項應該小心使用,因為它會覆寫所有符號處理程序預設值。 如需詳細資訊,請參閱 設定符號選項。
-sicv
導致符號處理程式忽略 CV 記錄。 如需詳細數據,以及控制此動作的其他方法,請參閱 SYMOPT_IGNORE_CVREC。
-罪
讓調試程式忽略符號路徑和可執行的映像路徑環境變數。 如需詳細資訊,請參閱 SYMOPT_IGNORE_NT_SYMPATH。
-snc
讓調試程式關閉C++轉譯。 如需控制此動作的詳細資訊和其他方法,請參閱 SYMOPT_NO_CPP。
-snul
停用未限定名稱的自動符號載入。 如需詳細數據,以及控制此動作的其他方法,請參閱 SYMOPT_NO_UNQUALIFIED_LOADS。
-srcpath SourcePath
指定來源檔案搜尋路徑。 使用分號分隔多個路徑(;)。 如果路徑包含空格,則應該以引弧括住。 如需詳細資訊,以及變更此路徑的其他方式,請參閱 來源路徑。
-支援
讓符號處理程式在每個符號搜尋期間搜尋公用符號數據表。 如需控制此動作的詳細資訊和其他方法,請參閱 SYMOPT_AUTO_PUBLICS。
-t PrintErrorLevel
指定會導致調試程序顯示錯誤訊息的錯誤層級。 這是等於 0、1、2 或 3 的十進位數。 這些值描述如下:
值 | 持續性 | 意義 |
---|---|---|
0 |
NONE |
不要顯示任何錯誤。 |
1 |
錯誤 |
顯示錯誤層級偵錯事件。 |
2 |
MINORERROR |
顯示 MINORERROR 和錯誤層級偵錯事件。 |
3 |
警告 |
顯示WARNING、MINORERROR和 ERROR 層級偵錯事件。 |
此錯誤層級在已核取Microsoft Windows 的組建中才有意義。 預設值是 1秒。 在 Windows 10 版本 1803 之前,檢查過的組建可在舊版 Windows 上使用。
-v
產生載入、延遲載入和卸除的詳細資訊訊息。
-版本
列印調試程式版本字串。
-喚醒 PID
導致睡眠模式結束,而使用者模式調試程式的進程標識碼是由 PID 所指定。 此命令必須在睡眠模式期間於目標計算機上發出。 如需詳細資訊,請參閱 從核心調試程式控制使用者模式調試程式 。
-wake 參數不得與任何其他參數搭配使用。 此命令實際上不會啟動 KD。
-x
導致調試程式在第一次發生例外狀況時中斷,而不是讓造成例外狀況處理的應用程式或模組處理例外狀況。 (與 -b 相同,除了初始 eb nt!NtGlobalFlag 9;g command.)
-y SymbolPath
指定符號搜尋路徑。 使用分號分隔多個路徑(;)。 如果路徑包含空格,則應該以引弧括住。 如需詳細資訊,以及變更此路徑的其他方式,請參閱 符號路徑。
-z DumpFile
指定要偵錯的損毀傾印檔案名稱。 如果路徑和檔名包含空格,則必須以引弧括住。 可以一次開啟數個傾印檔案,方法是包含多個 -z 選項,後面接著不同的 DumpFile 值。 如需詳細資訊,請參閱 使用 KD 分析內核模式傾印檔案。
-zp PageFile
指定修改的頁面檔名稱。 如果您要偵錯傾印檔案,而且想要使用 .pagein (記憶體中的頁面) 命令, 這會很有用。 您無法搭配標準 Windows 頁面檔案使用 -zp ,只能使用特別修改的頁面檔案。
-?
顯示命令行說明文字。
KD 會自動偵測目標執行所在的平臺。 您不需要在 KD 命令列上指定目標。 舊語法(使用名稱 I386KD 或 IA64KD)已過時。