Compartilhar via


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

Confira também

ENDEREÇO

FPO_DATA

IMAGE_FUNCTION_ENTRY

KDHELP

StackWalk