WinDbg Command-Line 選項

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 選項,它必須出現在命令列上的任何其他選項之前。 如果指定 可執行檔 ,它必須出現在命令列的最後一個; 可執行檔 名稱之後的任何文字會當做自己的命令列參數傳遞至可執行檔程式。

參數

-serverServerTransport
建立其他偵錯工具可以存取的偵錯伺服器。 如需可能 ServerTransport 值的說明,請參閱 啟用偵錯伺服器。 使用此參數時,它必須是命令列上的第一個參數。

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

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

-a擴充功能
設定預設擴充 DLL。 預設值為 kdextx86.dll 或 kdexts.dll。 「a」 後面不能有空格,而且不能包含 .dll 副檔名。 如需設定此預設值的詳細資訊和其他方法,請參閱 載入偵錯工具擴充 DLL

-B
不再支援此選項。

-c 「command
指定要在啟動時執行的初始偵錯工具命令。 此命令必須以引號括住。 您可以使用分號分隔多個命令。 (如果您有長命令清單,將命令放在腳本中可能會比較容易,然後使用 -c 選項搭配 $、$ < 、$ >< 、$ >< $ >< (run Script File) command.)

如果您要啟動偵錯用戶端,此命令必須適用于偵錯伺服器。 不允許用戶端特定的命令,例如 .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 視窗可能會暫時出現。

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

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

-iImagePath
指定產生錯誤的可執行檔位置。 如果路徑包含空格,它應該以引號括住。

-J
允許日誌。

-k [ConnectType]
(核心模式) 啟動核心偵錯會話。 如需詳細資訊,請參閱 使用 WinDbg (傳統) 進行即時 Kernel-Mode 偵錯 。 如果在之後不使用任何ConnectType選項,則會使用-k,它必須是命令列的最後一個專案。

-Kl
(核心模式只會) 啟動與偵錯工具相同電腦上的核心偵錯會話。

-kxExdiOptions
(核心模式僅) 使用 EXDI 驅動程式啟動核心偵錯會話。 如需 EXDI 的詳細資訊,請參閱 設定 EXDI 偵錯工具傳輸

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

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

-n
雜訊符號載入:啟用符號處理常式的詳細資訊輸出。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_DEBUG

-noinh
(使用者模式僅) 防止偵錯工具從偵錯工具繼承控制碼所建立的進程。 如需控制此作業的其他方法,請參閱 使用 WinDbg 偵錯 User-Mode 進程

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

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

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

-openPrivateDumpByHandle Handle
指定要偵錯之損毀傾印檔案的控制碼。

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

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

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

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

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

-公關
(使用者模式僅) 導致偵錯工具在附加至它時啟動執行的目標進程。 如果應用程式已暫停,而且您想要繼續執行,這非常有用。

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

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

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

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

-Qs
隱藏 [重載來源?] 對話方塊。 來源檔案不會自動重載。

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

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

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

-sdce
導致偵錯工具在符號載入期間顯示 檔案存取錯誤 訊息。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_FAIL_CRITICAL_ERRORS

-安全
啟動 安全模式

-ses
讓偵錯工具對所有符號檔執行嚴格的評估,並忽略任何可疑的符號。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_EXACT_SYMBOLS

-sflags 0xNumber
一次設定所有符號處理常式選項。 Number 應該是前面加上 0x 的十六進位數位 -- 允許不含 0x 的十進位數,但符號選項是二進位旗標,因此建議使用十六進位。 此選項應該謹慎使用,因為它會覆寫所有符號處理常式預設值。 如需詳細資訊,請參閱 設定符號選項

-sicv
導致符號處理常式忽略 CV 記錄。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_IGNORE_CVREC

-罪
導致偵錯工具忽略符號路徑和可執行映射路徑環境變數。 如需詳細資訊,請參閱 SYMOPT_IGNORE_NT_SYMPATH

-Snc
導致偵錯工具關閉 C++ 翻譯。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_NO_CPP

-snul
停用未限定名稱的自動符號載入。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_NO_UNQUALIFIED_LOADS

-srcpathSourcePath
指定來源檔案搜尋路徑。 以分號分隔多個路徑 (;) 。 如果路徑包含空格,它應該以引號括住。 如需詳細資訊,以及變更此路徑的其他方式,請參閱 來源路徑

-支援
讓符號處理常式在每個符號搜尋期間搜尋公用符號表。 如需控制此作業的詳細資料和其他方法,請參閱 SYMOPT_AUTO_PUBLICS

-T標題
設定 WinDbg 視窗標題。

-V
啟用偵錯工具的詳細資訊輸出。

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

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

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

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

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

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

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

-?
快顯此 HTML 說明視窗。

當您從命令列執行偵錯工具時,請在應用程式檔案名之後指定目標應用程式的引數。 例如:

windbg myexe arg1 arg2