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 (顯示堆疊回溯)