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。 如果 Frames 為 NULL,則不會傳回此資訊。
[in] FramesSize
指定數位 框架中的項目數。
[out, optional] FrameContexts
接收堆疊中每個框架的重新建構緩存器內容。 這個陣列中的項目會對應至 Frames 陣列中的專案。 線程內容的型別是目標有效處理器的CONTEXT結構。 如果 FrameContexts 為 NULL,則不會傳回此資訊。
[in] FrameContextsSize
指定 FrameContexts 所指向記憶體的大小,以位元組為單位。 傳回的堆疊框架數目等於傳回的內容數目,而 FrameContextsSize 必須等於 FramesSize 時間 FrameContextsEntrySize。
[in] FrameContextsEntrySize
指定 FrameContexts 中每個框架內容的大小,以位元組為單位。
[out, optional] FramesFilled
接收放置在陣列 Frames 和 FrameContexts 內容中的畫面格數目。 如果 FramesFilled 為 NULL,則不會傳回此資訊。
傳回值
傳回碼 | 描述 |
---|---|
|
此方法成功。 |
這個方法也可以傳回錯誤值。 如需詳細資訊,請參閱 傳回值。
備註
傳回 至 Frames 和 FrameContexts 的 堆疊追蹤可以使用 OutputContextStackTrace 列印。
堆疊回溯通常只會還原緩存器子集。 例如,堆疊回溯不一定會還原動態緩存器狀態,因為動態緩存器是臨時緩存器,而且程序代碼不需要保留它們。 在回溯上未還原的緩存器會保留為還原的最後一個值,因此在使用回溯可能未還原的緩存器狀態時,應該小心。
規格需求
需求 | 值 |
---|---|
目標平台 | 桌面 |
標頭 | dbgeng.h (包含 Dbgeng.h、Ntddk.h) |