DEBUG_STACK_FRAME_EX結構 (dbgeng.h)
DEBUG_STACK_FRAME_EX 結構描述堆疊框架的堆疊框架和目前指令的位址。
語法
typedef struct _DEBUG_STACK_FRAME_EX {
ULONG64 InstructionOffset;
ULONG64 ReturnOffset;
ULONG64 FrameOffset;
ULONG64 StackOffset;
ULONG64 FuncTableEntry;
ULONG64 Params[4];
ULONG64 Reserved[6];
BOOL Virtual;
ULONG FrameNumber;
ULONG InlineFrameContext;
ULONG Reserved1;
} DEBUG_STACK_FRAME_EX, *PDEBUG_STACK_FRAME_EX;
成員
InstructionOffset
處理程式虛擬位址空間中堆疊框架相關指示的位置。 這通常是下一個堆疊框架的傳回位址,如果框架位於堆疊頂端,則為目前的指令指標。
ReturnOffset
進程虛擬位址空間中堆疊框架之傳回位址的位置。 這通常是上一個堆疊框架的相關指示。
FrameOffset
如果已知,處理程式的堆疊框架虛擬位址空間中的位置。 某些處理器架構沒有框架或有一個以上的架構。 在這些情況下,引擎會為堆疊的指定層級選擇最具代表性的值。
StackOffset
處理程式虛擬位址空間中處理器堆疊的位置。
FuncTableEntry
如果有的話,目標虛擬位址空間中此框架之函式專案的虛擬位址空間中的位置。 設定時,此指標不保證會無限期維持有效,且不應保留以供日後使用。 請改為儲存 InstructionOffset 的值,並將其與 IDebugSymbols3::GetFunctionEntryByOffset 搭配使用,稍後擷取函式項目資訊。
Params[4]
如果有的話,傳遞至函式的前四個堆疊位置值。 如果少於四個自變數,其餘項目會設定為零。 這些堆疊位置不保證包含參數值。 某些呼叫慣例和編譯程式優化可能會干擾參數信息的識別。 如需更詳細的自變數資訊和適當的位置處理,請使用 IDebugSymbols::GetScopeSymbolGroup 來擷取實際的參數符號。
Reserved[6]
保留供日後使用。 設定為 NULL。
Virtual
如果調試程式透過回溯產生這個堆疊框架,此值會設定為 TRUE。 否則,如果值是從線程的目前內容形成,則會 FALSE。 一般而言,這是堆疊頂端框架 TRUE,其中 InstructionOffset 是目前的指令指標。
FrameNumber
框架的索引。 此索引會計算呼叫堆疊頂端的框架數目。 堆疊頂端的框架,代表目前呼叫,具有索引零。
InlineFrameContext
內嵌框架內容。
Reserved1
用於對齊目的。 設定為 0。
要求
要求 | 價值 |
---|---|
標頭 | dbgeng.h (include DbgEng.h) |