IDebugControl4::GetCoNtextStackTrace 方法 (dbgeng.h)

GetCoNtextStackTrace方法會傳回呼叫堆疊頂端的框架,從任意暫存器內容開始,並傳回每個堆疊框架的重新建構暫存器內容。

語法

HRESULT GetContextStackTrace(
  [in, optional]  PVOID              StartContext,
  [in]            ULONG              StartContextSize,
  [out, optional] PDEBUG_STACK_FRAME Frames,
  [in]            ULONG              FramesSize,
  [out, optional] PVOID              FrameContexts,
  [in]            ULONG              FrameContextsSize,
  [in]            ULONG              FrameContextsEntrySize,
  [out, optional] PULONG             FramesFilled
);

參數

[in, optional] StartContext

指定堆疊頂端的暫存器內容。

[in] StartContextSize

指定 StartCoNtext 暫存器內容的大小,以位元組為單位。

[out, optional] Frames

接收堆疊框架。 這個陣列保留的專案數目是 FrameSize。 如果 FramesNull,則不會傳回此資訊。

[in] FramesSize

指定陣列 框架中的專案數。

[out, optional] FrameContexts

接收堆疊中每個框架的重新建構暫存器內容。 這個陣列中的專案會對應至 Frames 陣列中的專案。 執行緒內容的型別是目標有效處理器的 CONTEXT 結構。 如果 FrameCoNtextsNull,則不會傳回此資訊。

[in] FrameContextsSize

指定 FrameCoNtexts所指向記憶體的大小,以位元組為單位。 傳回的堆疊框架數目等於傳回的內容數目,而 FrameCoNtextsSize 必須等於 FramesSize 時間 FrameCoNtextsEntrySize

[in] FrameContextsEntrySize

指定 FrameCoNtexts中每個框架內容的大小,以位元組為單位。

[out, optional] FramesFilled

接收放置在陣列 Frames 和FrameCoNtexts內容中的畫面格數目。 如果 FramesFilledNull,則不會傳回此資訊。

傳回值

傳回碼 描述
S_OK
此方法成功。
 

這個方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值

備註

傳回 至 FramesFrameCoNtexts 的 堆疊追蹤可以使用 OutputCoNtextStackTrace列印。

堆疊回溯通常只會還原暫存器子集。 例如,堆疊回溯不一定會還原動態暫存器狀態,因為動態暫存器是臨時暫存器,而且程式碼不需要保留它們。 回溯上未還原的暫存器會保留為還原的最後一個值,因此在使用回溯可能未還原的暫存器狀態時,應該小心。

規格需求

   
目標平臺 桌面
標頭 dbgeng.h (包含 Dbgeng.h、Ntddk.h)

另請參閱

GetStackTrace

IDebugControl4

OutputCoNtextStackTrace

k、kb、kc、kd、kp、kP、kv (顯示堆疊回溯)