Partager via


IDebugControl5 ::GetContextStackTraceEx, méthode (dbgeng.h)

La méthode GetContextStackTraceEx retourne les images situées en haut de la pile des appels, en commençant par un contexte d’enregistrement de arbitraire et en retournant le contexte de registre reconstruit pour chaque trame de pile. La méthode GetContextStackTraceEx fournit une prise en charge d’images inline. Pour plus d’informations sur l’utilisation des fonctions inline, consultez Débogage de code optimisé et de fonctions inline.

Syntaxe

HRESULT GetContextStackTraceEx(
  [in, optional]  PVOID                 StartContext,
  [in]            ULONG                 StartContextSize,
  [out, optional] PDEBUG_STACK_FRAME_EX Frames,
  [in]            ULONG                 FramesSize,
  [out, optional] PVOID                 FrameContexts,
  [in]            ULONG                 FrameContextsSize,
  [in]            ULONG                 FrameContextsEntrySize,
  [out, optional] PULONG                FramesFilled
);

Paramètres

[in, optional] StartContext

Spécifie le contexte d’inscription pour le haut de la pile.

[in] StartContextSize

Spécifie la taille, en octets, du contexte d’inscription StartContext.

[out, optional] Frames

Reçoit les trames de pile. Le nombre d’éléments que contient ce tableau est FrameSize. Si frames est NULL, ces informations ne sont pas retournées.

[in] FramesSize

Spécifie le nombre d’éléments du tableau Frames.

[out, optional] FrameContexts

Reçoit le contexte de registre reconstruit pour chaque image de la pile. Les entrées de ce tableau correspondent aux entrées du tableau Frames. Le type du contexte de thread est la structure CONTEXT du processeur effectif de la cible. Si FrameContexts est NULL, ces informations ne sont pas retournées.

[in] FrameContextsSize

Spécifie la taille, en octets, de la mémoire pointée par FrameContexts. Le nombre d’images de pile retournées est égal au nombre de contextes retournés, et FrameContextsSize doit être égal FramesSize fois FrameContextsEntrySize.

[in] FrameContextsEntrySize

Spécifie la taille, en octets, de chaque contexte d’image dans FrameContexts.

[out, optional] FramesFilled

Reçoit le nombre d’images qui ont été placées dans le tableau Frames et les contextes dans FrameContexts. Si framesFilled est NULL, ces informations ne sont pas retournées.

Valeur de retour

Retourner le code Description
S_OK
La méthode a réussi.
 

Cette méthode peut également retourner des valeurs d’erreur. Pour plus d’informations, consultez Valeurs de retour.

Remarques

La trace de pile retournée à Frames et FrameContexts peuvent être imprimées à l’aide de OutputContextStackTraceEx.

Il est courant que les déroulements de pile restaurent uniquement un sous-ensemble des registres. Par exemple, les déroulements de pile ne restaurent pas toujours l’état du registre volatile, car les registres volatiles sont des registres à zéro et le code n’a pas besoin de les conserver. Les registres qui ne sont pas restaurés lors du déroulement sont laissés comme dernière valeur restaurée. Vous devez donc veiller à utiliser l’état de registre qui ne peut pas être restauré par un déroulement.

Exigences

Exigence Valeur
plateforme cible Bureau
d’en-tête dbgeng.h (include Dbgeng.h, Ntddk.h)

Voir aussi

GetStackTraceEx

IDebugControl5

OutputContextStackTraceEx

k, kb, kc, kd, kp, kP, kv (backtrace de pile d’affichage)