Structure STACKFRAME (dbghelp.h)

Représente un frame de pile.

Syntaxe

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;

Membres

AddrPC

Structure ADDRESS qui spécifie le compteur de programme.

x86 : Le compteur du programme est EIP.

Intel Itanium : Le compteur du programme est StIIP.

x64 : Le compteur du programme est RIP.

AddrReturn

Structure ADDRESS qui spécifie l’adresse de retour.

AddrFrame

Structure ADDRESS qui spécifie le pointeur d’image.

x86 : Le pointeur d’image est EBP.

Intel Itanium : Il n’existe aucun pointeur d’image, mais AddrBStore est utilisé.

x64 : Le pointeur d’image est RBP ou RDI. Cette valeur n’est pas toujours utilisée.

AddrStack

Structure ADDRESS qui spécifie le pointeur de pile.

x86 : Le pointeur de pile est ESP.

Intel Itanium : Le pointeur de pile est fournisseur de services.

x64 : Le pointeur de pile est RSP.

FuncTableEntry

Sur les ordinateurs x86, ce membre est une structure FPO_DATA . S’il n’existe aucune entrée de table de fonction, ce membre a la valeur NULL.

Params[4]

Arguments possibles de la fonction.

Far

Ce membre a la valeur TRUE s’il s’agit d’un appel de distance WOW.

Virtual

Ce membre a la valeur TRUE s’il s’agit d’une trame virtuelle.

Reserved[3]

Ce membre est utilisé en interne par la fonction StackWalk .

KdHelp

Structure KDHELP qui spécifie les données d’assistance pour les trames de rappel du noyau.

AddrBStore

Intel Itanium : Structure ADDRESS qui spécifie le magasin de stockage (RsBSP).

Remarques

Cette structure remplace la structure STACKFRAME . Pour plus d’informations, consultez Mise à jour de la prise en charge de la plateforme. STACKFRAME est défini comme suit dans 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

Configuration requise

Condition requise Valeur
En-tête dbghelp.h
Composant redistribuable DbgHelp.dll 5.1 ou version ultérieure

Voir aussi

ADRESSE

FPO_DATA

IMAGE_FUNCTION_ENTRY

KDHELP

StackWalk