STACKFRAME 結構 (dbghelp.h)
代表堆疊框架。
語法
typedef struct _tagSTACKFRAME {
ADDRESS AddrPC;
ADDRESS AddrReturn;
ADDRESS AddrFrame;
ADDRESS AddrStack;
PVOID FuncTableEntry;
DWORD Params[4];
BOOL Far;
BOOL Virtual;
DWORD Reserved[3];
KDHELP KdHelp;
ADDRESS AddrBStore;
} STACKFRAME, *LPSTACKFRAME;
成員
AddrPC
指定程式計數器的 ADDRESS 結構。
x86: 程式計數器為 EIP。
Intel Itanium: 程式計數器為 StIIP。
x64: 程式計數器為 RIP。
AddrReturn
指定傳回位址的 ADDRESS 結構。
AddrFrame
指定框架指標的 ADDRESS 結構。
x86: 畫面指標為 EBP。
Intel Itanium: 沒有框架指標,但會使用 AddrBStore 。
x64: 框架指標為 RBP 或 RDI。 這個值不一定會使用。
AddrStack
指定堆疊指標的 ADDRESS 結構。
x86: 堆疊指標為 ESP。
Intel Itanium: 堆疊指標為SP。
x64: 堆疊指標為 RSP。
FuncTableEntry
在 x86 計算機上,此成員是 FPO_DATA 結構。 如果沒有函式數據表專案,此成員為 NULL。
Params[4]
函式的可能自變數。
Far
如果這是 WOW 遠距呼叫,則此成員為 TRUE 。
Virtual
如果這是虛擬框架,則此成員為 TRUE 。
Reserved[3]
StackWalk 函式會在內部使用此成員。
KdHelp
KDHELP 結構,指定逐步執行核心回呼框架的協助程序數據。
AddrBStore
Intel Itanium: ADDRESS 結構,指定 RsBSP) (備份儲存區。
備註
這個結構會取代 STACKFRAME 結構。 如需詳細資訊,請參閱 更新的平台支援。 STACKFRAME 的定義如下:Dbghelp.h。
#if !defined(_IMAGEHLP_SOURCE_) && defined(_IMAGEHLP64)
#define STACKFRAME STACKFRAME64
#define LPSTACKFRAME LPSTACKFRAME64
#else
typedef struct _tagSTACKFRAME {
ADDRESS AddrPC; // program counter
ADDRESS AddrReturn; // return address
ADDRESS AddrFrame; // frame pointer
ADDRESS AddrStack; // stack pointer
PVOID FuncTableEntry; // pointer to pdata/fpo or NULL
DWORD Params[4]; // possible arguments to the function
BOOL Far; // WOW far call
BOOL Virtual; // is this a virtual frame?
DWORD Reserved[3];
KDHELP KdHelp;
ADDRESS AddrBStore; // backing store pointer
} STACKFRAME, *LPSTACKFRAME;
#endif
規格需求
需求 | 值 |
---|---|
標頭 | dbghelp.h |
可轉散發套件 | DbgHelp.dll 5.1 或更新版本 |