共用方式為


檢視呼叫堆疊,並在調試程式中使用 [呼叫堆棧] 視窗

藉由使用 [呼叫堆疊] 視窗,您可以檢視目前在堆疊上的函式或過程調用。 呼叫堆疊 視窗會顯示呼叫方法和函式的順序。 呼叫堆疊是檢查及瞭解應用程式執行流程的好方法。

當呼叫堆疊的一部分無法使用 偵錯符號 時,呼叫堆疊 視窗可能無法顯示該部分呼叫堆棧的正確資訊,改為顯示:

[Frames below may be incorrect and/or missing, no symbols loaded for name.dll]

注意

您看到的對話框和功能表命令可能不同於此處所述的對話框和功能表命令,視您的使用中設定或版本而定。 若要變更您的設定,請選取 [[工具] 功能表上的 [匯入和匯出設定]。 請參閱 重設所有設定呼叫堆疊 視窗類似於 Eclipse 等部分整合開發環境中的調試視圖。

在調試程式中檢視呼叫堆疊

偵錯時,在 [偵錯] 功能表中,選取 [Windows > 呼叫堆疊],或按 ctrl+alt+C

顯示 [呼叫堆疊視窗] 的螢幕快照。 箭號可識別執行指標目前所在的堆疊框架。 根據預設,此堆疊框架的資訊會出現在來源中、局部變數AutosWatch,以及 反組譯 視窗。 若要將除錯程式內容變更為堆疊上的另一個框架,切換至另一個堆疊框架

顯示 [呼叫堆疊視窗] 的螢幕快照。

黃色箭號會識別執行指標目前所在的堆疊框架。 根據預設,此堆疊框架的資訊會出現在來源中、局部變數AutosWatch,以及 反組譯 視窗。 若要將除錯程式內容變更為堆疊上的另一個框架,切換至另一個堆疊框架

您也可以在偵錯時檢視呼叫堆疊中的例外狀況堆疊框架。 如需詳細資訊,請參閱 在例外狀況協助程式中檢視呼叫堆棧。

在 [呼叫堆疊] 視窗中顯示非使用者程式碼

若要顯示外部或非使用者程式代碼,請在 [呼叫堆疊] 視窗上按一下滑鼠右鍵,然後選取 [顯示外部程式代碼]

若要顯示外部或非使用者程式代碼,請從呼叫堆疊工具列切換 [顯示外部程式碼] 按鈕,或以滑鼠右鍵按兩下 [呼叫堆疊] 視窗,然後選取 [顯示外部程式代碼]

非使用者程式代碼是啟用 Just My Code 時未顯示的任何程式代碼。 在受控代碼中,預設會隱藏非使用者程式碼堆疊。 下列表示法會用來取代非使用者的程式碼框架:

[<External Code>]

切換至另一個堆疊框架(變更除錯程式內容)

  1. 在 [呼叫堆疊] 視窗中,滑鼠右鍵按下您想查看其程式碼和數據的堆疊框架。

    或者,您可以在 呼叫堆疊 視窗中按兩下框架,切換至該框架。

  2. 選取 切換至框架

    捲曲尾的綠色箭號會出現在您選取的堆疊框架旁邊。 執行指標會保留在原始框架中,該框架仍以黃色箭號標示。 如果您從 [偵錯] 選單中選取 [步驟] 或 [繼續],則會在原始框架中繼續執行,而不是您選取的框架。

切換 [檢視所有線程] 按鈕,以查看 [平行堆疊] 視窗中的所有相關線程

您可以在位於呼叫堆疊視窗左上角的搜尋方塊中輸入相關的搜尋字詞,以搜尋相關的呼叫堆疊框架。 相關的呼叫堆疊框架將會被突顯顯示。

檢視呼叫堆疊上函式的原始程式碼

在 [呼叫堆疊] 視窗中,右鍵點擊您要查看原始程式碼的函式,然後選取 [移至原始程式碼]

從「呼叫堆疊」視窗切換至特定函式

在 [呼叫堆疊] 視窗中,選取函式,按一下滑鼠右鍵,然後選擇 [執行至游標]。

在函數調用的結束點上設定斷點

請參閱 在呼叫堆疊函式設定斷點。

顯示對另一個執行緒或從另一個執行緒的呼叫

右鍵點擊 [呼叫堆疊] 視窗,然後選取 [包含來自/發送到其他線程的呼叫]。

以可視化方式追蹤呼叫堆疊

在 Visual Studio Enterprise 中,您可以在偵錯時檢視呼叫堆疊的程式碼對應。

在 [呼叫堆疊] 視窗中,開啟快捷方式功能表。 選擇 在 Code Map 上顯示呼叫堆疊 (Ctrl + Shift + `) 。

如需詳細資訊,請在偵錯時參閱呼叫堆疊上的 Map 方法

在Code Map上顯示呼叫堆疊,

檢視呼叫堆疊上函式的反組譯碼(C#、C++、Visual Basic、F#)

在 [呼叫 Stack] 視窗中,以滑鼠右鍵按下您想要查看其反組譯碼的函式,然後選取 [移至反組譯碼]

變更顯示的選擇性資訊

在 [呼叫堆疊] 視窗中按下滑鼠右鍵,並設定或清除 [顯示 <您想要>的資訊。

自動反編譯 .NET 外部代碼

從 Visual Studio 2022 17.7 版開始,您可以在 [呼叫堆棧] 視窗中按兩下外部程式代碼來自動編譯 .NET 程式代碼。 如需詳細資訊,請參閱 在偵錯時,從 .NET 元件產生原始程式碼。

載入模組的符號(C#、C++、Visual Basic、F#)

在 [呼叫 Stack] 視窗中,您可以載入目前未載入符號之程式代碼的偵錯符號。 這些符號可以是從Microsoft公用符號伺服器下載的 .NET 或系統符號,或是您要偵錯之計算機上符號路徑中的符號。

請參閱 指定符號 (.pdb) 和原始程式檔

載入符號

  1. 在 [呼叫堆疊] 視窗中,以滑鼠右鍵點按符號未載入的堆疊框架。 框架將會變暗。

  2. 指向 [載入符號],然後選取 [Microsoft符號伺服器](如果有可用的話),或瀏覽至符號路徑。

設定符號路徑

  1. 在 [呼叫堆棧] 視窗中,從快捷方式功能表選擇 [符號設定]

    [選項] 對話框隨即開啟,並顯示 [符號] 頁面。

  2. 選取 符號設定

  3. 在 [選項] 對話框中,按兩下 [資料夾] 圖示。

    符號檔案 (.pdb) 位置 方塊中,會出現游標。

  4. 輸入您要偵錯之電腦上符號位置的目錄路徑名稱。 針對本機和遠端偵錯,這是本機計算機上的路徑。

  5. 選取 [確定] 關閉 [選項] 對話框。