共用方式為


WinDbg 命令行選項

WinDbg 的第一次用戶應該從使用 WinDbg 進行偵錯(傳統)一節開始

WinDbg 命令行使用下列語法:

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] 

WinDbg 命令行選項的描述如下。 除了 -j 之外,所有命令行選項都會區分大小寫。 初始連字元可以取代為正斜線 (/)。

如果使用 -remote-server 選項,則必須出現在命令行上的任何其他選項之前。 如果指定可執行檔,它必須出現在命令行的最後一個;可執行檔名稱之後的任何文字都會傳遞至可執行檔程式做為其本身的命令行參數。

參數

-伺服器 ServerTransport
建立可由其他調試程式存取的偵錯伺服器。 如需可能 ServerTransport 值的說明,請參閱啟用偵錯伺服器 使用此參數時,它必須是命令行上的第一個參數。

-遠端 ClientTransport
建立偵錯用戶端,並連接到已經執行的偵錯伺服器。 如需可能 ClientTransport 值的說明,請參閱啟用偵錯用戶端 使用此參數時,它必須是命令行上的第一個參數。

-premote SmartClientTransport
建立智慧型手機到已經執行的進程伺服器。 如需可能 SmartClientTransport 值的說明,請參閱啟用智慧型手機用戶端。

-一個 外延
設定預設擴充 DLL。 預設值為 kdextx86.dll 或 kdexts.dll。 在 「a」 之後不得有空格,而且不得包含.dll擴展名。 如需設定此預設值的詳細資訊和其他方法,請參閱 載入調試程式擴充功能 DLL

-b
不再支援此選項。

-c ” 命令
指定要在啟動時執行的初始調試程式命令。 此命令必須以引弧括住。 您可以使用分號分隔多個命令。 (如果您有很長的命令清單,可能更容易將它們放在腳本中,然後使用 -c 選項搭配 $<、$、$><、$><、><$(執行腳本檔案)命令。

如果您要啟動偵錯用戶端,此命令必須適用於偵錯伺服器。 不允許用戶端特定命令,例如 .lsrcpath

-clines
設定可在遠端偵錯期間存取之命令歷程記錄中的大約命令數目。 如需詳細資訊,以及變更此號碼的其他方式,請參閱 使用調試程式命令

-d
(僅限核心模式)重新啟動之後,調試程式會在載入核心模組時立即進入目標計算機。 (此中斷時間早於 -b 選項的中斷。如需變更此狀態的其他方法的詳細資訊,請參閱當機並重新啟動目標計算機

-ee {masm|c++}
設定預設表達式評估工具。 如果 指定masm ,則會使用MASM表示式語法。 如果 指定 c++ ,則會使用C++運算式語法。 如果省略 -ee 選項,則會使用MASM表示式語法做為預設值。 如需詳細資訊,請參閱 評估表達式

-failinc
讓調試程式忽略任何可疑的符號。 偵錯使用者模式或內核模式迷你傾印檔案時,此選項也會防止調試程式載入無法對應映像的任何模組。 如需控制此動作的詳細資訊和其他方法,請參閱 SYMOPT_EXACT_SYMBOLS

-g
(僅限使用者模式)忽略目標應用程式中的初始斷點。 除非已設定其他斷點,否則此選項會導致目標應用程式在啟動後繼續執行,否則 WinDbg 會附加至它。 如需詳細資訊,請參閱 初始斷點

-G
(僅限使用者模式)忽略進程終止時的最終斷點。 一般而言,偵錯會話會在映像執行過程中結束。 此選項會導致偵錯會話在子系終止時立即結束。 這與輸入命令 sxd epr 的效果相同。 如需詳細資訊,請參閱 控制例外狀況和事件

-硬碟
(僅限使用者模式)指定不應該使用偵錯堆積。

-I[S]
將 WinDbg 安裝為事後調試程式。 如需詳細資訊,請參閱 啟用事後偵錯

嘗試此動作之後,會顯示成功或失敗訊息。 如果 包含 S ,則此程式會在成功時以無訊息方式完成;只會顯示失敗訊息。

-I 參數不得與任何其他參數搭配使用。 此命令實際上不會啟動 WinDbg,不過 WinDbg 視窗可能會暫時出現。

-IA[S]
將 WinDbg 與登錄中的擴展名.dmp、.mdmp 和 .wew 產生關聯。 嘗試此動作之後,會顯示成功或失敗訊息。 如果 包含 S ,則此程式會在成功時以無訊息方式完成;只會顯示失敗訊息。 建立此關聯之後,選取並按住 (或以滑鼠右鍵按兩下) 具有其中一個擴展名的檔案將會啟動 WinDbg。

-IA 參數不得與任何其他參數搭配使用。 此命令實際上不會啟動 WinDbg,不過 WinDbg 視窗可能會暫時出現。

-IU KeyString
將調試程式遠端登錄為 URL 類型,讓使用者可以使用 URL 自動啟動調試程式遠端用戶端。 KeyString 格式為 remdbgeng://RemotingOptionRemotingOption 是字串,定義啟用偵錯用戶端主題中所定義的傳輸通訊協定。 如果此動作成功,則不會顯示任何訊息;如果失敗,則會顯示錯誤訊息。

-IU 參數不得與任何其他參數搭配使用。 雖然 WinDbg 視窗可能暫時出現,但此命令實際上不會啟動 WinDbg。

-我 ImagePath
指定產生錯誤的可執行檔案位置。 如果路徑包含空格,則應該以引弧括住。

-j
允許紀錄。

-k [ConnectType]
(僅限核心模式)啟動核心偵錯會話。 如需詳細資訊,請參閱使用 WinDbg 的即時內核模式偵錯(傳統版)。 如果使用 -k ,但未遵循任何 ConnectType 選項,它必須是命令行上的最後一個專案。

-kl
(僅限核心模式)在與調試程式相同的計算機上啟動核心偵錯會話。

-kx ExdiOptions
(僅限核心模式)使用 EXDI 驅動程式啟動核心偵錯工作階段。 如需EXDI的詳細資訊,請參閱 設定EXDI調試程式傳輸

-log{o|a} LogFile
開始將資訊記錄到記錄檔。 如果指定的記錄檔已經存在,則會在使用 -logo覆寫它。 如果使用 loga ,輸出將會附加至檔案。 如需詳細資訊,請參閱 在 WinDbg 中保留記錄檔。

-lsrcpath
設定遠端用戶端的本機來源路徑。 此選項必須遵循 命令行上的 -remote

-n
Noisy 符號載入:啟用符號處理程式的詳細信息輸出。 如需詳細數據,以及控制此動作的其他方法,請參閱 SYMOPT_DEBUG

-noinh
(僅限使用者模式)防止調試程式建立的進程從調試程序繼承句柄。 如需控制這項功能的其他方法,請參閱 使用 WinDbg 對使用者模式進程進行偵錯。

-noprio
防止任何優先順序變更。 此參數會防止 WinDbg 在作用中時優先處理 CPU 時間。

-noshell
禁止所有 .shell 命令。 只要調試程式正在執行,這項禁令就會持續,即使開始新的偵錯會話也一樣。 如需詳細資訊,以及停用殼層命令的其他方式,請參閱 使用殼層命令。

-o
(僅限使用者模式)偵錯目標應用程式啟動的所有進程(子進程)。 根據預設,您所偵錯的進程將會如正常執行一樣執行。

-openPrivateDumpByHandle 處理
指定要偵錯的損毀傾印檔案句柄。

-p PID
指定要偵錯的十進位進程標識碼。 這是用來偵錯已經執行的進程。

-鉛
(僅限使用者模式)防止調試程式在附加至目標進程時要求初始中斷。 如果應用程式已暫停,或您想要避免在目標中建立中斷線程,這非常有用。

-pd
(僅限使用者模式)導致目標應用程式不會在偵錯會話結束時終止。 如需詳細數據,請參閱 在 WinDbg 中 結束偵錯會話。

-體育
(僅限使用者模式)表示目標應用程式已進行偵錯。 如需詳細資訊,請參閱 重新附加至目標應用程式

-pn 名字
指定要偵錯的進程名稱。 (此名稱必須是唯一的。這是用來偵錯已經執行的進程。

-公關
(僅限使用者模式)讓調試程式在附加至目標進程時啟動執行的目標進程。 如果應用程式已暫停,而且您希望應用程式繼續執行,這非常有用。

-psn ServiceName
指定要偵錯之進程中包含的服務名稱。 這是用來偵錯已經執行的進程。

-鉑
指定中斷逾時,以秒為單位。 預設值是 30。 如需詳細資訊,請參閱 控制目標

-光伏
(僅限使用者模式)指定調試程式應該以非侵入方式附加至目標進程。 如需詳細資訊,請參閱非侵入式偵錯(使用者模式)。

-Q
隱藏 [儲存工作區?] 對話框。 工作區不會自動儲存。 如需詳細資訊,請參閱使用工作區 - WinDbg (傳統版)。

-QS
隱藏 [重載來源?] 對話框。 來源檔案不會自動重載。

-QSY
隱藏 [重載來源?] 對話框,並自動重載來源檔案。

-QY
隱藏 [儲存工作區?] 對話框,並自動儲存工作區。 如需詳細資訊,請參閱使用工作區 - WinDbg (傳統版)。

-robp
這可讓CDB在唯讀記憶體頁面上設定斷點。 (預設值是讓這類作業失敗。

-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 標題
設定WinDbg 視窗標題。

-v
從調試程式啟用詳細信息輸出。

-W 工作
載入指定的具名工作區。 如果工作區名稱包含空格,請以引弧括住它。 如果沒有此名稱的工作區存在,您將可以選擇使用此名稱建立新的工作區,或放棄載入嘗試。 如需詳細資訊,請參閱 使用工作區 - WinDbg (傳統)

-WF 檔名
從指定的檔案載入工作區。 檔名 應包含檔案和擴展名 (通常是 .wew)。 如果工作區名稱包含空格,請以引弧括住它。 如果沒有此名稱的工作區檔案存在,您將可以選擇使用此名稱建立新的工作區檔案,或放棄載入嘗試。 如需詳細資訊,請參閱 使用工作區 - WinDbg (傳統)

-WX
停用自動載入工作區。 如需詳細資訊,請參閱 使用工作區 - WinDbg (傳統)

-y SymbolPath
指定符號搜尋路徑。 使用分號分隔多個路徑(;)。 如果路徑包含空格,則應該以引弧括住。 如需詳細資訊,以及變更此路徑的其他方式,請參閱 符號路徑

-z DumpFile
指定要偵錯的損毀傾印檔案名稱。 如果路徑和檔名包含空格,則必須以引弧括住。 可以一次開啟數個傾印檔案,方法是包含多個 -z 選項,後面接著不同的 DumpFile 值。 如需詳細資訊,請參閱使用 WinDbg 分析使用者模式傾印檔案或分析內核模式傾印檔案。

-zp PageFile
指定修改的頁面檔名稱。 如果您要偵錯傾印檔案,而且想要使用 .pagein (記憶體中的頁面) 命令, 這會很有用。 您無法搭配標準 Windows 頁面檔案使用 -zp ,只能使用特別修改的頁面檔案。

可執行
指定可執行程式的命令列。 這可用來啟動新的進程並對其進行偵錯。 這必須是命令行上的最後一個專案。 可執行檔名稱之後的所有文字都會傳遞至可執行檔作為其自變數字串。 如需詳細資訊,請參閱 使用 WinDbg 對使用者模式進程進行偵錯。

-?
快顯此 HTML 說明視窗。

當您從命令行執行調試程式時,請在應用程式檔名之後指定目標應用程式的自變數。 例如:

windbg myexe arg1 arg2