使用調試程式命令
這描述調試程式命令的使用。 WinDbg 是調試程式,可用來分析損毀傾印、偵錯即時使用者模式和內核模式程序代碼,以及檢查 CPU 快存器和記憶體。 如需詳細資訊,請參閱 WinDbg 概觀。
若要安裝調試程式,請參閱 安裝 Windows 調試程式。
若要開始使用 WinDbg,請參閱 開始使用 Windows 偵錯。
WinDbg 調試程式命令視窗
針對 WinDbg,「調試程式命令視窗」是指標題列中標示為 「Command」 的視窗。 這個視窗包含兩個窗格:
在小型底部窗格中,您輸入命令。
在大型的上方窗格中,您可以檢視命令輸出。
這個視窗一律會在偵錯會話的開頭開啟。 您可以藉由選取 [檢視] 功能表上的 [命令]、按 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(重複最後一個命令)。
如果您發出的最後一個命令顯示長顯示器,而且您想要將其切斷,請使用 CDB或 KD 中的 CTRL+C 鍵。 在 WinDbg 中,使用 偵錯 |中斷 或按 CTRL+BREAK。
在內核模式偵錯中,您可以按 CTRL+C,從目標電腦的鍵盤取消命令。
您可以使用 .cls (清除畫面) 命令,從 [調試程式命令] 視窗清除所有文字。 此命令會清除整個命令歷程記錄。 在 WinDbg 中,您可以使用 [編輯] 清除命令歷程記錄 |清除命令輸出 命令,或選取 [調試程式命令] 視窗快捷方式功能表上的 [清除命令輸出 ]。
運算式語法
許多命令和擴充命令接受 表達式 作為其自變數。 調試程式會在執行命令之前評估這些表達式。 如需表達式的詳細資訊,請參閱 評估表達式。
別名
別名是可用來避免重新輸入複雜片語的文字宏。 別名有兩種。 如需別名的詳細資訊,請參閱 使用別名。
自我重複命令
您可以使用下列命令重複動作,或有條件地執行其他命令:
j (執行 If-Else) 條件式命令
z (執行 While) 條件式命令
~e (線程特定命令) 命令限定符
!list 擴充功能命令
如需每個命令的詳細資訊,請參閱個別命令主題。
控制卷動
您可以使用滾動條來檢視先前的命令及其輸出。
當您使用CDB或 KD 時,任何鍵盤專案都會自動向下捲動調試程式命令視窗回到底部。
在 WinDbg 中,每當命令產生輸出或按下 ENTER 鍵時,顯示器就會自動向下捲動到底部。 如果您想要停用此自動捲動,請選取 [檢視] 功能表上的 [選項],然後清除 [自動捲動] 複選框。
WinDbg 文字功能
在 WinDbg 中,您可以使用數個額外的功能來變更在 [調試程式命令] 視窗中顯示文字的方式。 您可以在 WinDbg 視窗中存取其中一些功能、在 [調試程式命令] 視窗中的快捷方式功能表,以及選取適當的功能表圖示來存取其中一些功能。
快捷方式選單上的 [自動換行] 命令會開啟和關閉自動換行狀態。 此命令會影響整個視窗,而不只是在變更此狀態之後使用的命令。 由於許多命令和延伸模組會產生格式化的顯示,因此我們通常不建議自動換行。
編輯 |[新增至命令輸出 ] 功能表命令會在 [調試程式命令] 視窗中新增批注。 快捷方式選單上的 [ 新增至命令輸出 ] 命令具有相同的效果。
您可以自訂用於文字和調試程式命令視窗背景的色彩。 您可以為不同類型的文字指定不同的色彩。 例如,您可以以一種色彩顯示自動緩存器輸出、另一種色彩的錯誤訊息,以及 第三種色彩的 DbgPrint 訊息。
您可以使用 WinDbg 偵錯資訊視窗通用的所有功能,例如自定義字型和使用特殊編輯命令。
遠端偵錯
當您透過調試程式執行遠端偵錯時,偵錯用戶端可以存取有限的命令數目。 若要變更用戶端可存取的命令數目,請使用 -clines 命令行選項或_NT_DEBUG_HISTORY_SIZE環境變數。