Méthode IDebugControl5 ::GetContextStackTraceEx (dbgeng.h)
La méthode GetContextStackTraceEx retourne les trames en haut de la pile des appels, en commençant par un contexte de registre arbitraire et en retournant le contexte de registre reconstruit pour chaque trame de pile. La méthode GetContextStackTraceEx prend en charge les trames inline. Pour plus d’informations sur l’utilisation des fonctions inline, consultez Débogage du code optimisé et 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 de registre StartContext .
[out, optional] Frames
Reçoit les trames de pile. Le nombre d’éléments que contient ce tableau est FrameSize. Si Frames a la valeur NULL, ces informations ne sont pas retournées.
[in] FramesSize
Spécifie le nombre d’éléments dans le 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 a la valeur 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 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 le tableau Frames et les contextes dans FrameContexts. Si FramesFilled a lavaleur NULL, ces informations ne sont pas retournées.
Valeur retournée
Code de retour | Description |
---|---|
|
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 OutputContextStackTraceEx.
Il est courant que les opérations de pile ne restaurent qu’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 de travail et le code n’a pas besoin de les conserver. Les registres qui ne sont pas restaurés lors du déroulement sont conservés comme dernière valeur restaurée. Il faut donc être prudent lors de l’utilisation de l’état de registre qui ne peut pas être restauré par un déroulement.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dbgeng.h (inclure Dbgeng.h, Ntddk.h) |