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