structure DEBUG_STACK_FRAME_EX (dbgeng.h)
La structure DEBUG_STACK_FRAME_EX décrit un cadre de pile et l’adresse de l’instruction actuelle pour le cadre de pile.
Syntaxe
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;
Membres
InstructionOffset
Emplacement dans l’espace d’adressage virtuel du processus de l’instruction associée pour le cadre de pile. Il s’agit généralement de l’adresse de retour de l’image de pile suivante ou du pointeur d’instruction actuel si le cadre se trouve en haut de la pile.
ReturnOffset
Emplacement dans l’espace d’adressage virtuel du processus de l’adresse de retour pour le cadre de pile. Il s’agit généralement de l’instruction associée pour le cadre de pile précédent.
FrameOffset
Emplacement dans l’espace d’adressage virtuel du processus de l’image de pile, s’il est connu. Certaines architectures de processeur n’ont pas de trame ou en ont plusieurs. Dans ce cas, le moteur choisit une valeur la plus représentative pour le niveau donné de la pile.
StackOffset
Emplacement dans l’espace d’adressage virtuel du processus de la pile du processeur.
FuncTableEntry
Emplacement dans l’espace d’adressage virtuel de la cible de l’entrée de fonction pour cette image, si disponible. Lorsqu’il est défini, il n’est pas garanti que ce pointeur reste valide indéfiniment et ne doit pas être conservé pour une utilisation ultérieure. Au lieu de cela, enregistrez la valeur d’InstructionOffset et utilisez-la avec IDebugSymbols3 ::GetFunctionEntryByOffset pour récupérer ultérieurement les informations d’entrée de fonction.
Params[4]
Valeurs des quatre premiers emplacements de pile qui sont passés à la fonction, le cas échéant. S’il existe moins de quatre arguments, les entrées restantes sont définies sur zéro. Il n’est pas garanti que ces emplacements de pile contiennent des valeurs de paramètre. Certaines conventions d’appel et optimisations du compilateur peuvent interférer avec l’identification des informations de paramètre. Pour obtenir des informations plus détaillées sur les arguments et une gestion appropriée de l’emplacement, utilisez IDebugSymbols ::GetScopeSymbolGroup pour récupérer les symboles de paramètre réels.
Reserved[6]
Réservé pour un usage futur. valeur de l’en-tête définie sur Null.
Virtual
La valeur est définie sur TRUE si cette trame de pile a été générée par le débogueur en décompressant. Sinon, la valeur est FALSE si elle a été formée à partir du contexte actuel d’un thread. En règle générale, il s’agit de TRUE pour le cadre situé en haut de la pile, où InstructionOffset est le pointeur d’instruction actuel.
FrameNumber
Index du cadre. Cet index compte le nombre d’images situées en haut de la pile des appels. L’image située en haut de la pile, qui représente l’appel actuel, a un index zéro.
InlineFrameContext
Contexte d’image inline.
Reserved1
Utilisé à des fins d’alignement. Définit la valeur 0.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | dbgeng.h (inclure DbgEng.h) |