IDebugControl4::GetContextStackTrace, méthode (dbgeng.h)

La méthode GetContextStackTrace retourne les images en haut de la pile d’appels, en commençant par un contexte de registre arbitraire et en retournant le contexte de registre reconstruit pour chaque trame de pile.

Syntaxe

HRESULT GetContextStackTrace(
  [in, optional]  PVOID              StartContext,
  [in]            ULONG              StartContextSize,
  [out, optional] PDEBUG_STACK_FRAME 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 de registre StartContext .

[out, optional] Frames

Reçoit les cadres de pile. Le nombre d’éléments que contient ce tableau est FrameSize. Si les images sont 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 cadre 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 à FrameSize times 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 les cadres de tableau et les contextes dans FrameContexts. Si FramesFilled est NULL, ces informations ne sont pas retournées.

Valeur de retour

Code de retour 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 peut être imprimée à l’aide de OutputContextStackTrace.

Il est courant que les déroulements de la pile ne restaurent qu’un sous-ensemble des registres. Par exemple, les déroulages de pile ne restaurent pas toujours l’état de 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 sur le déroulement sont laissés comme la dernière valeur restaurée. Vous devez donc prendre soin lors de l’utilisation de l’état de registre qui peut ne pas être restauré par un déroulement.

Configuration requise

   
Plateforme cible Desktop (Expérience utilisateur)
En-tête dbgeng.h (include Dbgeng.h, Ntddk.h)

Voir aussi

GetStackTrace

IDebugControl4

OutputContextStackTrace

k, kb, kc, kd, kp, kP, kv (Display Stack Backtrace)