STACKFRAME structure (dbghelp.h)
Represents a stack frame.
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
An ADDRESS structure that specifies the program counter.
x86: The program counter is EIP.
Intel Itanium: The program counter is StIIP.
x64: The program counter is RIP.
AddrReturn
An ADDRESS structure that specifies the return address.
AddrFrame
An ADDRESS structure that specifies the frame pointer.
x86: The frame pointer is EBP.
Intel Itanium: There is no frame pointer, but AddrBStore is used.
x64: The frame pointer is RBP or RDI. This value is not always used.
AddrStack
An ADDRESS structure that specifies the stack pointer.
x86: The stack pointer is ESP.
Intel Itanium: The stack pointer is SP.
x64: The stack pointer is RSP.
FuncTableEntry
On x86 computers, this member is an FPO_DATA structure. If there is no function table entry, this member is NULL.
Params[4]
The possible arguments to the function.
Far
This member is TRUE if this is a WOW far call.
Virtual
This member is TRUE if this is a virtual frame.
Reserved[3]
This member is used internally by the StackWalk function.
KdHelp
A KDHELP structure that specifies helper data for walking kernel callback frames.
AddrBStore
Intel Itanium: An ADDRESS structure that specifies the backing store (RsBSP).
This structure supersedes the STACKFRAME structure. For more information, see Updated Platform Support. STACKFRAME is defined as follows in 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
Requirement | Value |
---|---|
Header | dbghelp.h |
Redistributable | DbgHelp.dll 5.1 or later |