在 WinDbg 中,源窗口顯示已加載到調試器中的源文件。
如何打開源代碼窗口
- 通過菜單File--->Open Source File打開源代碼文件,窗口隨之打開
- 通過快捷鍵Ctrl+O
- 通過工具欄
- 設置源路徑,調試器實時自動打開
使用源代碼窗口
通過上面方式打開的窗口如下:
每個源窗口都顯示一個源文件的文本。 不能在調試器中編輯源文件。 每個源窗口都具有包含附加命令的快捷菜單。 若要訪問菜單,請右鍵單擊標題欄,或單擊窗口右上角附近顯示的圖標()。 以下列表描述了一些菜單命令:
-
Set instruction pointer to current line 會將指令指針的值更改為對應於當前行的指令。 此命令等效於使用 "編輯 |設置當前指令命令或按 CTRL + SHIFT + I.
- Edit this file 在文本編輯器中打開源文件。編輯器由WinDiff編輯器注冊表信息或WINDBG_INVOKE_editor環境變量的值確定。例如,當WINDBG_INVOKE_EDITOR的值為以下值時。
c:\my\path\myeditor.exe -file %f -line %l
在這種情況下,Myeditor.exe將打開到當前源文件的基於一行的行號。%l選項表示行號應以一個為基礎讀取,而%f表示應使用當前源文件。其他替換可能性包括%L(表示行號是基於零的)和%p(表示應使用當前源文件)。
-
Evaluate selection 通過使用C++表達式計算器來計算當前選定的文本。 結果將顯示在調試器命令窗口中。 如果所選文本包含多行,則會產生語法錯誤。 此命令等效於使用 "編輯 |計算選擇命令,按 CTRL + SHIFT + V,或使用 ??(計算C++表達式) 帶有所選文本作為參數的命令。
-
Display selected type 顯示所選對象的數據類型。 此顯示顯示在調試器命令窗口中。 如果所選文本包含多個對象,則可能會顯示語法錯誤或其他不穩定的結果。 此命令等效於使用 "編輯 |顯示選定的類型命令,或按 CTRL + SHIFT + Y。
-
Open memory window for selection 打開一個新的停靠內存窗口,該窗口顯示從所選表達式的地址開始的內存。.
-
Add selection to Watch window 將所選源令牌追加到監視窗口中.
-
Disassemble at current line 會導致與當前行對應的指令出現在 "反匯編"窗口中。 選定的行將在源窗口和 "反匯編" 窗口中突出顯示,但此命令僅影響顯示,而不會更改指令指針。 如果單擊此命令時 "反匯編" 窗口關閉,則將其打開。.
-
Select source language 顯示一系列編程語言。 選擇用於生成源文件的編程語言,然后單擊 "確定" 以為當前源窗口啟用基本語法突出顯示。 選擇 " <NONE"> 可禁用當前源窗口的語法突出顯示。
源窗口顏色和懸停計算
如果調試器識別源文件擴展名,則源窗口將以彩色顯示某些語法元素。 若要關閉或更改顏色,請執行以下操作:
-
若要在單個窗口中關閉語法顏色,請打開源窗口的快捷菜單,單擊 "選擇源語言",然后單擊 " <無"> 。
-
若要為所有源窗口關閉語法顏色,請從 "視圖" 菜單中選擇 "選項"。 然后清除 "分析源語言" 復選框。
-
若要更改語法顏色,請從 "視圖" 菜單中選擇 "選項"。 然后,在 "顏色" 區域中,選擇語法元素,然后單擊 "更改" 按鈕更改顏色。
-
用於突出顯示的分析方法取決於與源文件的文件擴展名相關聯的編程語言。 若要更改與特定文件擴展名關聯的編程語言,請使用 "源語言的文件擴展名" 對話框。 若要打開此對話框,請在 "視圖" 菜單中選擇 "源語言文件擴展名"。
突出顯示表示當前程序計數器的行。 還將突出顯示斷點所在的行。
如果選擇源窗口,然后使用鼠標將鼠標懸停在該窗口中的某個符號上,則將對該符號進行計算。 計算與dt (顯示類型) 命令生成的值相同。 若要停用此評估,請從 "視圖" 菜單中選擇 "選項"。 然后清除 "懸停時計算" 復選框。