Partager via


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 frame de pile. Il s’agit généralement de l’adresse de retour du cadre de pile suivant 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 frame 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 du frame de pile, s’il est connu. Certaines architectures de processeur ne disposent pas d’une trame ou ont plusieurs. Dans ces 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 trame, le cas échéant. Lorsqu’il est défini, ce pointeur n’est pas garanti pour rester valide indéfiniment et ne doit pas être conservé pour une utilisation ultérieure. Au lieu de cela, enregistrez la valeur de InstructionOffset et utilisez-la avec IDebugSymbols3 ::GetFunctionEntryByOffset pour récupérer les informations d’entrée de fonction ultérieurement.

Params[4]

Valeurs des quatre premiers emplacements de pile 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. Ces emplacements de pile ne sont pas garantis pour contenir 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 d’argument plus détaillées 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 une utilisation ultérieure. Défini 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éroulant. 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 TRUE pour le cadre situé en haut de la pile, où InstructionOffset est le pointeur d’instruction actuel.

FrameNumber

Index du frame. Cet index compte le nombre d’images situées en haut de la pile des appels. Le frame situé en haut de la pile, représentant l’appel actuel, a l’index zéro.

InlineFrameContext

Contexte d’image inline.

Reserved1

Utilisé à des fins d’alignement. Défini sur 0.

Exigences

Exigence Valeur
d’en-tête dbgeng.h (include DbgEng.h)