在 WinDbg (傳統) 中檢視呼叫堆疊

呼叫堆疊是導致程式計數器目前位置的函式呼叫鏈結。 呼叫堆疊上的最上層函式是目前的函式,下一個函式是呼叫目前函式的函式,依此類故。 顯示的呼叫堆疊是以目前的程式計數器為基礎,除非您變更暫存器內容。 如需如何變更暫存器內容的詳細資訊,請參閱 變更內容

在 WinDbg 中,您可以輸入命令或使用 [呼叫] 視窗來檢視呼叫堆疊。

偵錯工具命令視窗

您可以在偵錯工具命令視窗中輸入其中一個 k (顯示堆疊回溯) 命令,以檢視呼叫堆疊。

呼叫視窗

除了 k 命令,您可以在 [呼叫] 視窗中檢視呼叫堆疊。 若要開啟 [通話] 視窗,請從 [檢視] 功能表選擇[呼叫堆疊]。

下列螢幕擷取畫面顯示 [通話] 視窗的範例。

WinDbg 中 [呼叫] 視窗的螢幕擷取畫面。

[呼叫] 視窗中的按鈕可讓您自訂呼叫堆疊的檢視。 若要移至 [來源] 視窗 或 [反組解碼 ] 視窗中的對應呼叫位置,請按兩下呼叫堆疊的一行,或選取一行,然後按 ENTER 鍵。 此動作也會將 本機內容 變更為選取的堆疊框架。 如需從這個點執行至或移出的詳細資訊,請參閱 控制目標

在使用者模式中,堆疊追蹤是以目前線程的堆疊為基礎。 如需目前線程堆疊的詳細資訊,請參閱 控制進程和執行緒

在核心模式中,堆疊追蹤是以目前的暫存器內容為基礎。 您可以將暫存器內容設定為符合特定執行緒、內容記錄或陷阱框架。 如需設定暫存器內容的詳細資訊,請參閱 註冊內容

[呼叫] 視窗有一個工具列,其中包含數個按鈕,而且具有具有其他命令的快捷方式功能表。 若要存取此功能表,請選取並按住 (或以滑鼠右鍵按一下) 標題列,或選取靠近視窗右上角的圖示, (顯示WinDbg 中 [呼叫] 視窗工具列快捷方式功能表的按鈕 螢幕擷取畫面。

  • 原始引數 會顯示傳遞至函式的前三個參數。 在 x86 型處理器上,此顯示包含前三個參數,這些參數會傳遞至函式 (「Args to Child」) 。

  • Func 資訊 會顯示框架指標省略 (FPO) 資料和其他函式的內部資訊。 此命令僅適用于以 x86 為基礎的處理器。

  • 如果 偵錯工具) ,來源會顯示函式名稱之後 (來源模組名稱和行號。

  • 載入器 會顯示各種框架相關位址。 在 x86 型處理器上,此顯示器包含堆疊框架的基底指標 (「ChildEBP」) 和傳回位址 (「RetAddr」) 。

  • Frame nums 會顯示框架編號。 畫面格一律會連續編號,開頭為零。

  • Arg 類型 會顯示堆疊中函式所預期和接收之引數的詳細資訊。

  • 一律浮動 會導致視窗維持未停駐狀態,即使拖曳到停駐位置也一樣。

  • 使用框架 移動會導致在 WinDbg 框架移動時移動視窗,即使視窗已取消停駐也一樣。

其他資訊

如需註冊內容和本機內容的詳細資訊,請參閱 變更內容