共用方式為


使用偵錯工具命令

這會描述偵錯工具命令的使用。 WinDbg 是偵錯工具,可用來分析損毀傾印、偵錯即時使用者模式和核心模式程式碼,以及檢查 CPU 暫存器和記憶體。 如需詳細資訊,請參閱 WinDbg 概觀

若要安裝偵錯工具,請參閱 安裝 Windows 偵錯工具

若要開始使用 WinDbg,請參閱使用 Windows 偵錯消費者入門

WinDbg 偵錯工具命令視窗

對於 WinDbg,「偵錯工具命令視窗」是指標題欄中標示為「命令」的視窗。 此視窗包含兩個窗格:

  • 在小型的底部窗格中,您輸入命令。

  • 在大型的上方窗格中,您可以檢視命令輸出。

這個視窗一律會在偵錯會話的開頭開啟。 您可以選取 [檢視] 功能表上的 [命令]、按 ALT+1,或選取 [命令] (Alt+1) 按鈕, ([偵錯工具命令視窗] 按鈕的螢幕擷取畫面,以重新開啟或切換至此視窗。

您可以使用向上鍵和向下鍵捲動命令歷程記錄。 當上一個命令出現時,您可以加以編輯,然後按 ENTER 來執行上一個命令 (或先前命令的編輯版本) 。 資料指標不一定位於行尾,此程式才能正常運作。

KD 或 CDB

對於 KD 或 CDB,「偵錯工具命令視窗」是指整個視窗。 您可以在視窗底部的提示處輸入命令。 如果命令有任何輸出,視窗會顯示輸出,然後再次顯示提示。

偵錯工具命令視窗提示字元

當您執行使用者模式偵錯時,[偵錯工具命令] 視窗中的提示看起來像下列範例。

2:005>

在上述範例中,2 是目前的進程編號,而 005 是目前的執行緒編號。

如果您將偵錯工具附加至多部電腦,系統會在進程和執行緒編號之前包含系統號碼,如下列範例所示。

3:2:005>

在此範例中,3 是目前的系統編號,2 是目前的進程編號,而 005 是目前的執行緒編號。

當您在只有一個處理器的目的電腦上執行核心模式偵錯時,提示看起來像下列範例。

kd>

不過,如果目的電腦有多個處理器,則目前的處理器數目會出現在提示之前,如下列範例所示。

0: kd>

如果偵錯工具正忙於處理先前發出的命令,則新的命令暫時不會處理,雖然這些命令可以新增至命令緩衝區。 此外,您仍然可以在 KD 和 CDB 中使用 控制鍵 ,而且您仍然可以在 WinDbg 中使用功能表命令和 快速鍵 。 當 KD 或 CDB 處於此忙碌狀態時,不會顯示任何提示。 當 WinDbg 處於此忙碌狀態時,會出現下列指標來取代提示:

*BUSY*

您可以使用 .pcmd (設定提示字元命令) 命令,將文字新增至此提示字元。

命令種類

WinDbg、KD 和 CDB 支援各種命令。 某些命令會在偵錯工具之間共用,有些命令只能在一或兩個偵錯工具上使用。

某些命令只能在即時偵錯中使用,而其他命令只能在偵錯傾印檔案時使用。

某些命令只能在使用者模式偵錯期間使用,而其他命令只能在核心模式偵錯期間使用。

只有在目標在特定處理器上執行時,才能使用某些命令。 如需所有命令及其限制的詳細資訊,請參閱 偵錯工具命令

編輯、重複和取消命令

當您輸入命令時,可以使用標準編輯金鑰:

  • 使用向上鍵和向下鍵來尋找先前的命令。

  • 使用 BACKSPACE、DELETE、INSERT 和向左鍵和向右鍵編輯目前的命令。

  • 按 ESC 鍵以清除目前的行。

您可以按 TAB 鍵自動完成文字輸入。 在任何偵錯工具中,在您輸入至少一個字元以自動完成命令之後,按 TAB 鍵。 重複按下 TAB 鍵以迴圈流覽文字完成選項,並按住 SHIFT 鍵,然後按 TAB 鍵以向後迴圈。 您也可以在文字中使用萬用字元,然後按 TAB 鍵展開至完整的文字完成選項組。 例如,如果您輸入 fo*!ba ,然後按 TAB 鍵,偵錯工具就會展開至以 「ba」 開頭的所有模組中,所有模組中開頭為 「fo」 的所有符號集。 另一個範例是,您可以輸入 !*prcb ,然後按 TAB 鍵來完成所有具有 「prcb」 的擴充命令。

當您使用 TAB 鍵來執行文字完成時,如果您的文字片段以句點 (.) 句點開頭,則文字會與點命令相符。 如果您的文字片段以驚嘆號開頭 (!) ,則文字會與延伸模組命令相符。 否則,文字會與符號相符。 當您使用 TAB 鍵來輸入符號時,按 TAB 鍵會完成程式碼並輸入符號和模組名稱。 如果沒有任何模組名稱明顯,則會完成本機符號和模組名稱。 如果指定模組或模組模式,符號完成會完成所有相符專案的程式碼和類型符號。

您可以在 [偵錯工具命令] 視窗中選取並保留 (或以滑鼠右鍵按一下) ,以自動將剪貼簿的內容貼到您輸入的命令中。

最大命令長度為 4096 個字元。 不過,如果您要 從核心偵錯工具控制使用者模式偵錯工具,則行長度上限為 512 個字元。

在 CDB 和 KD 中,按 ENTER 鍵本身重複上述命令。 在 WinDbg 中,您可以啟用或停用此行為。 如需此行為的詳細資訊,請參閱 ENTER (Repeat Last Command)

如果您發出的最後一個命令顯示長顯示器,而且您想要將其截斷,請使用 CDB 或 KD 中的 CTRL+C 鍵。 在 WinDbg 中,使用 偵錯 |中斷 或按 CTRL+BREAK。

在核心模式偵錯中,您可以按 CTRL+C,從目的電腦的鍵盤取消命令。

您可以使用 .cls (Clear Screen) 命令,從 [偵錯工具命令] 視窗清除所有文字。 此命令會清除整個命令歷程記錄。 在 WinDbg 中,您可以使用 [編輯] 來清除命令歷程記錄 |清除命令輸出 命令,或選取 [偵錯工具命令] 視窗快捷方式功能表上的 [ 清除命令輸出 ]。

運算式語法

許多命令和擴充命令都會接受 運算式 作為其引數。 偵錯工具會在執行命令之前評估這些運算式。 如需運算式的詳細資訊,請參閱 評估運算式

別名

別名 是可用來避免重新輸入複雜片語的文字宏。 別名有兩種。 如需別名的詳細資訊,請參閱 使用別名

Self-Repeating 命令

您可以使用下列命令重複動作,或有條件地執行其他命令:

如需每個命令的詳細資訊,請參閱個別命令主題。

控制捲動

您可以使用捲軸來檢視先前的命令及其輸出。

當您使用 CDB 或 KD 時,任何鍵盤專案都會自動向下捲動偵錯工具命令視窗回到底部。

在 WinDbg 中,每當命令產生輸出或按下 ENTER 鍵時,顯示會自動向下捲動到底部。 如果您想要停用此自動捲動,請選取 [檢視] 功能表上的 [選項],然後清除 [自動卷動] 核取方塊。

WinDbg 文字功能

在 WinDbg 中,您可以使用數個額外的功能來變更文字在 [偵錯工具命令] 視窗中的顯示方式。 您可以在 WinDbg 視窗中存取其中一些功能、部分在 [偵錯工具命令] 視窗的快捷方式功能表中,以及選取適當的功能表圖示來存取某些功能。

  • 快顯功能表上的 [Word換行] 命令會開啟和關閉自動換行狀態。 此命令會影響整個視窗,而不只是您在變更此狀態之後使用的命令。 由於許多命令和延伸模組會產生格式化的顯示,因此我們通常不建議自動換行。

  • 編輯 |[新增至命令輸出] 功能表命令會在 [偵錯工具命令] 視窗中新增批註。 快捷方式功能表上的 [新增至命令輸出 ] 命令具有相同的效果。

  • 您可以自訂用於文字和偵錯工具命令視窗背景的色彩。 您可以為不同類型的文字指定不同的色彩。 例如,您可以以一種色彩顯示自動暫存器輸出、另一種色彩的錯誤訊息,以及第三種色彩的 DbgPrint 訊息。

  • 您可以使用 WinDbg 偵錯資訊視窗通用的所有功能,例如自訂字型和使用特殊編輯命令。

Remote Debugging

當您透過偵錯工具執行遠端偵錯時,偵錯用戶端可以存取有限的命令數目。 若要變更用戶端可以存取的命令數目,請使用 -clines命令列選項 或_NT_DEBUG_HISTORY_SIZE 環境變數