Estrutura STACKFRAME (dbghelp.h)
Representa um registro de ativação.
Sintaxe
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;
Membros
AddrPC
Uma estrutura ADDRESS que especifica o contador do programa.
x86: O contador do programa é EIP.
Intel Itanium: O contador do programa é StIIP.
x64: O contador do programa é RIP.
AddrReturn
Uma estrutura ADDRESS que especifica o endereço de retorno.
AddrFrame
Uma estrutura ADDRESS que especifica o ponteiro de quadro.
x86: O ponteiro de quadro é EBP.
Intel Itanium: Não há nenhum ponteiro de quadro, mas AddrBStore é usado.
x64: O ponteiro de quadro é RBP ou RDI. Esse valor nem sempre é usado.
AddrStack
Uma estrutura ADDRESS que especifica o ponteiro de pilha.
x86: O ponteiro de pilha é ESP.
Intel Itanium: O ponteiro de pilha é SP.
x64: O ponteiro de pilha é RSP.
FuncTableEntry
Em computadores x86, esse membro é uma estrutura FPO_DATA . Se não houver nenhuma entrada de tabela de funções, esse membro será NULL.
Params[4]
Os argumentos possíveis para a função.
Far
Esse membro será TRUE se esta for uma chamada distante wow.
Virtual
Esse membro será TRUE se este for um quadro virtual.
Reserved[3]
Esse membro é usado internamente pela função StackWalk .
KdHelp
Uma estrutura KDHELP que especifica dados auxiliares para quadros de retorno de chamada de kernel em andamento.
AddrBStore
Intel Itanium: Uma estrutura ADDRESS que especifica o repositório de backup (RsBSP).
Comentários
Essa estrutura substitui a estrutura STACKFRAME . Para obter mais informações, consulte Suporte de plataforma atualizado. STACKFRAME é definido da seguinte maneira em 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
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | dbghelp.h |
Redistribuível | DbgHelp.dll 5.1 ou posterior |