如何:使用“調用堆棧”窗口
使用“調用堆棧”窗口可以查看當前堆棧上的函數或過程調用。
“調用堆棧”窗口顯示每個函數的名稱以及編寫它所用的編程語言。 函數或過程名稱可能包含可選信息,如模塊名稱、行號、參數名稱、類型和值。 可以打開或關閉這些可選信息的顯示。
一個黃色箭頭標識執行指針當前所位於的堆棧幀。 默認情況下,該幀的信息顯示在源、“反彙編”、“局部變量”、“監視”和“自動”窗口中。 如果想將上下文更改爲堆棧上的另一個幀,可以在“調用堆棧”窗口中執行相應的操作。
當調試符號對部分調用堆棧不可用時,“調用堆棧”窗口也許就不能顯示那部分調用堆棧的正確信息。 將出現以下表示法:
[下面的幀可能不正確和/或缺失,沒有爲 name.dll 加載符號]
在託管代碼中,默認情況下,“調用堆棧”窗口將隱藏非用戶代碼的信息。 在隱藏信息處出現以下表示法:
[<External Code>]
非用戶代碼是任何代碼,這些代碼不是可通過快捷菜單選擇以顯示非用戶代碼的調用堆棧信息的我的代碼。
可以使用快捷菜單選擇查看線程之間的調用。
說明 |
---|
顯示的對話框和菜單命令可能會與“幫助”中的描述不同,具體取決於您的當前設置或版本。 若要更改設置,請在“工具”菜單上選擇“導入和導出設置”。 有關詳細信息,請參閱 在 Visual Studio 中自定義開發設置。 |
以中斷模式或運行模式顯示“調用堆棧”窗口
-
在“調試”菜單中選擇“窗口”,然後單擊“調用堆棧”。
更改顯示的可選信息
-
右鍵單擊“調用堆棧”窗口,然後設置或清除“顯示 <the information that you want>”。
在“調用堆棧”窗口中顯示非用戶代碼幀
-
右擊“調用堆棧”窗口,然後選擇“顯示外部代碼”。
切換到另一個堆棧幀
-
在“調用堆棧”窗口中,右擊要查看其代碼和數據的幀。
-
選擇“切換到幀”。
一個帶有卷尾的綠色箭頭顯示在所選幀旁。 執行指針保留在原始幀中,仍然用黃色箭頭標記。 如果從“調試”菜單中選擇“單步執行”或“繼續”,執行將繼續在原始幀中進行,而不是在選定的幀中進行。
顯示與其他線程之間的來回調用
-
右擊“調用堆棧”窗口,然後選擇“包括對其他線程和來自其他線程的調用”。
查看調用堆棧上的函數的源代碼
-
在“調用堆棧”窗口中,右擊要查看其源代碼的函數,然後選擇“轉到源代碼”。
直觀地跟蹤調用堆棧
-
在“調用堆棧”窗口中,打開快捷菜單。 選擇“在代碼圖上顯示調用堆棧”。(鍵盤:Ctrl + Shift + `)
查看調用堆棧上的函數的反彙編代碼
-
在“調用堆棧”窗口中,右擊要查看其反彙編代碼的函數,然後選擇“轉到反彙編”。
從“調用堆棧”窗口運行到特定函數
-
請參閱運行到指定位置或函數。
在函數調用的退出點上設置斷點
加載模塊符號
-
如果要重新加載模塊的符號,請在“調用堆棧”窗口中右擊顯示該模塊的幀,然後選擇“加載符號”。
在“調用堆棧”窗口中,可以爲當前還未加載符號的代碼加載調試符號。 這些符號可以是從 Microsoft 公共符號服務器下載的 .NET Framework 符號或系統符號,也可以是正在調試的計算機上的某個符號路徑中的符號。
請參閱在 Visual Studio 調試器中指定符號 (.pdb) 和源文件
加載符號
-
在“調用堆棧”窗口中,右擊尚未爲其加載符號的幀。 此幀將顯示爲灰色。
-
指向“加載符號”,然後單擊“Microsoft 符號服務器”或“符號路徑”。
設置符號路徑
-
在“調用堆棧”窗口中,從快捷菜單中選擇“符號設置”。
將打開“選項”對話框並顯示“符號”頁。
-
單擊“符號設置”。
-
在“選項”對話框中單擊“文件夾”圖標。
在“符號文件(.pdb)位置”框中將出現一個光標。
-
鍵入所調試的計算機上的符號位置的目錄路徑名。 對於本地調試,此計算機指您的本地計算機。 對於遠程調試,此計算機指遠程計算機。
-
單擊“確定”關閉“選項”對話框。