DEBUG_STACK_FRAME_EX structure (dbgeng.h)
The DEBUG_STACK_FRAME_EX structure describes a stack frame and the address of the current instruction for the stack frame.
Syntax
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;
Members
InstructionOffset
The location in the process's virtual address space of the related instruction for the stack frame. This is typically the return address for the next stack frame, or the current instruction pointer if the frame is at the top of the stack.
ReturnOffset
The location in the process's virtual address space of the return address for the stack frame. This is typically the related instruction for the previous stack frame.
FrameOffset
The location in the process's virtual address space of the stack frame, if known. Some processor architectures do not have a frame or have more than one. In these cases, the engine chooses a value most representative for the given level of the stack.
StackOffset
The location in the process's virtual address space of the processor stack.
FuncTableEntry
The location in the target's virtual address space of the function entry for this frame, if available. When set, this pointer is not guaranteed to remain valid indefinitely and should not be held for future use. Instead, save the value of InstructionOffset and use it with IDebugSymbols3::GetFunctionEntryByOffset to retrieve function entry information later.
Params[4]
The values of the first four stack slots that are passed to the function, if available. If there are less than four arguments, the remaining entries are set to zero. These stack slots are not guaranteed to contain parameter values. Some calling conventions and compiler optimizations might interfere with identification of parameter information. For more detailed argument information and proper location handling, use IDebugSymbols::GetScopeSymbolGroup to retrieve the actual parameter symbols.
Reserved[6]
Reserved for future use. Set to NULL.
Virtual
The value is set to TRUE if this stack frame was generated by the debugger by unwinding. Otherwise, the value is FALSE if it was formed from a thread's current context. Typically, this is TRUE for the frame at the top of the stack, where InstructionOffset is the current instruction pointer.
FrameNumber
The index of the frame. This index counts the number of frames from the top of the call stack. The frame at the top of the stack, representing the current call, has index zero.
InlineFrameContext
Inline frame context.
Reserved1
Used for alignment purposes. Set to 0.
Requirements
Requirement | Value |
---|---|
Header | dbgeng.h (include DbgEng.h) |