調試器命令窗口是windbg中的主要調試信息窗口。
可以在此窗口中輸入調試程序命令並查看命令輸出。Windbg的命令窗口是我們進行調試時,主要打交道的窗口。界面如下
對於windbg,“調試器命令窗口”是指標題欄中標記為“命令”的窗口。此窗口包含兩個窗格:
- 在底部的小窗格中,輸入命令。
-
在上面的大窗格中,可以查看命令輸出。
打開和關閉命令窗口
通常我們通過打開exe程序、附加到進程或打開dmp文件進行調試時,會自動打開此窗口,但很有可能我們關閉掉了這個窗口,有如下重新打開方式:
- 點擊工具欄按鈕
- 從“視圖”菜單中選擇“命令”。
- 快捷鍵 ALT+1
可以通過如下方式關閉此窗口:
- 點擊窗口右上角的
- 快捷鍵ALT+SHIFT+1
- 熱鍵 CTRL+F4
- 標題欄右鍵菜單"Close"
通過上面的方式,我們可以隨意關閉打開此窗口。
調試器命令窗口提示
在執行用戶模式調試時,“調試器命令”窗口中的提示類似於以下示例。
2:005>
在此示例中,2是當前進程號,005是當前線程號。
如果將調試器附加到多台計算機,則系統號將包括在進程和線程號之前,如下面的示例所示。
3:2:005>
在本例中,3是當前系統號,2是當前進程號,005是當前線程號。
在只有一個處理器的目標計算機上執行內核模式調試時,提示如下所示。
kd>
但是,如果目標計算機有多個處理器,則當前處理器的編號將顯示在提示之前,如下例所示。
0: kd>
如果調試器正忙於處理以前發出的命令,則新命令將暫時不被處理,盡管可以添加到命令緩沖區。此外,還可以在windbg中使用菜單命令和快捷鍵。當windbg處於忙碌狀態時,以下指示器將代替提示出現:
*BUSY*
可以使用.pcmd(set prompt command)命令將文本添加到此提示。
命令操作
輸入正確的命令,敲Enter鍵,執行命令。除了這種操作外,我們還可以進行編輯、重復和取消命令的操作。
輸入命令時可以使用標准編輯鍵:
- 使用向上和向下箭頭鍵查找以前的命令。
- 使用退格鍵、刪除鍵、插入鍵、左箭頭鍵和右箭頭鍵編輯當前命令。
- 按Esc鍵清除當前行。
您可以按Tab鍵自動完成文本輸入。在任何調試程序中,輸入至少一個字符后按Tab鍵自動完成命令。反復按Tab鍵可循環顯示文本完成選項,按住SHIFT鍵並按Tab可向后循環。您還可以在文本中使用通配符,然后按Tab鍵展開到完整的文本完成選項集。例如,如果鍵入fo*!ba然后按tab鍵,調試器將擴展到以“ba”開頭的所有符號集,在所有模塊中,模塊名以“fo”開頭。作為另一個例子,您可以通過鍵入來完成所有包含“prcb”的擴展命令!*prcb,然后按tab。
使用tab鍵執行文本完成時,如果文本片段以句點(.)開頭,則文本與點命令匹配。如果文本片段以感嘆號(!)開頭,文本與擴展命令匹配。否則,文本將與符號匹配。當使用tab鍵輸入符號時,按tab鍵完成代碼並鍵入符號和模塊名稱。如果沒有明顯的模塊名,則完成本地符號和模塊名。如果給定了模塊或模塊模式,則符號完成將完成所有匹配項中的代碼和類型符號。
您可以在調試器命令窗口中單擊鼠標右鍵,以自動將剪貼板的內容粘貼到正在鍵入的命令中。最大命令長度為4096個字符。但是,如果從內核調試程序控制用戶模式調試程序,則最大行長度為512個字符。
如果您發出的最后一個命令顯示一個長的顯示,並且您希望將其關閉,在windbg中,使用debug_break或按ctrl+break。
在內核模式調試中,可以通過按ctrl+c從目標計算機的鍵盤取消命令。
可以使用.cls(clear screen)命令從調試器命令窗口中清除所有文本。此命令清除整個命令歷史記錄。在windbg中,可以通過使用edit_clear command output命令或單擊Debugger命令窗口快捷菜單上的clear command output來清除命令歷史記錄。
控制滾動
可以使用滾動條查看以前的命令及其輸出。
當您使用cdb或kd時,任何鍵盤條目都會自動向下滾動到調試器命令窗口的底部。在windbg中,每當命令生成輸出或按Enter鍵時,顯示器會自動向下滾動到底部。如果要禁用此自動滾動,請單擊“視圖”菜單上的選項,然后清除“自動滾動”復選框
windbg文本功能
在windbg中,您可以使用一些附加功能來更改文本在調試器命令窗口中的顯示方式。您可以在windbg窗口中訪問其中的一些功能,一些在調試器命令窗口的快捷菜單中,還有一些通過單擊相應的菜單圖標來訪問。快捷菜單上的“自動換行”命令可打開和關閉自動換行狀態。此命令影響整個窗口,而不僅僅是更改此狀態后使用的命令。因為許多命令和擴展都會生成格式化的顯示,所以我們通常不建議使用自動換行。“編輯添加到命令輸出”菜單命令在“調試器命令”窗口中添加注釋。快捷菜單上的“添加到命令輸出”命令具有相同的效果。可以自定義用於調試器命令窗口的文本和背景的顏色。
可以為不同類型的文本指定不同的顏色。例如,可以用一種顏色顯示自動寄存器輸出,用另一種顏色顯示錯誤消息,用第三種顏色顯示dbgprint消息。有關此自定義的詳細信息,請參見視圖選項。
您可以使用windbg調試信息窗口中常見的所有功能,例如自定義字體和使用特殊的編輯命令。
命令窗口的菜單
在標題欄右鍵彈出如下菜單
- Add to command output 添加到命令輸出向命令輸出添加注釋,類似於編輯添加到命令輸出命令。
- Clear command output 清除命令輸出將刪除窗口中的所有文本。
- Choose text color and recolor selection 選擇文本顏色並對所選內容重新着色…打開一個對話框,使您能夠選擇文本顏色以顯示在調試器命令窗口中選擇的文本。
- Word wrap 自動換行打開和關閉自動換行狀態。此命令影響整個窗口,而不僅僅是選擇此狀態后使用的命令。由於許多命令和擴展都會生成格式化的顯示,因此不建議使用自動換行。
- Mark current location 標記當前位置在命令窗口中的當前光標位置設置標記。標記的名稱是光標右側行的內容。
- Go to mark 轉到標記使窗口滾動,使包含所選標記的行位於窗口頂部。
- Always floating 始終浮動會使窗口保持未停靠狀態,即使將其拖到停靠位置。
- Move with frame “隨幀移動”會使窗口在移動windbg幀時移動,即使該窗口已松開。有關固定窗口、選項卡式窗口和浮動窗口的詳細信息,請參見定位窗口。