_EFN_StackTrace, fonction
Fournit une représentation textuelle d'une trace de pile managée et un tableau d'enregistrements CONTEXT
pour chaque transition entre du code non managé et du code managé.
Syntaxe
HRESULT CALLBACK _EFN_StackTrace(
[in] PDEBUG_CLIENT Client,
[out] WCHAR wszTextOut[],
[out] size_t *puiTextLength,
[out] LPVOID pTransitionContexts,
[out] size_t *puiTransitionContextCount,
[in] size_t uiSizeOfContext,
[in] DWORD Flags
);
Paramètres
Client
[in] Le client en cours de débogage.
wszTextOut
[out] Représentation textuelle de la trace de pile.
puiTextLength
[out] Pointeur vers le nombre de caractères dans wszTextOut
.
pTransitionContexts
[out] Tableau de contextes de transition.
puiTransitionContextCount
[out] Pointeur vers le nombre de contextes de transition dans le tableau.
uiSizeOfContext
[in] Taille de la structure de contexte.
Flags
[in] Définissez la valeur 0 ou SOS_STACKTRACE_SHOWADDRESSES (0x01) pour afficher le registre EBP et le pointeur de pile d’entrée (ESP) devant chaque module!functionname
ligne.
Notes
La structure _EFN_StackTrace
peut être appelée à partir d’une interface de programmation WinDbg. Les paramètres sont utilisés comme suit :
Si
wszTextOut
a la valeur Null etpuiTextLength
n’a pas la valeur Null, la fonction renvoie la longueur de chaîne danspuiTextLength
.Si
wszTextOut
n’a pas la valeur Null, la fonction stocke du texte danswszTextOut
jusqu’à l’emplacement indiqué parpuiTextLength
. Elle aboutit en présence de suffisamment d’espace dans la mémoire tampon ou retourne E_OUTOFMEMORY dans le cas contraire.La partie transition de la fonction est ignorée si
pTransitionContexts
etpuiTransitionContextCount
ont tous deux la valeur Null. Dans ce cas, la fonction fournit aux appelants une sortie de texte contenant uniquement les noms de fonctions.Si
pTransitionContexts
a la valeur Null etpuiTransitionContextCount
n’a pas la valeur Null, la fonction retourne le nombre nécessaire d’entrées de contexte danspuiTransitionContextCount
.Si
pTransitionContexts
n’a pas la valeur Null, la fonction le traite comme un tableau de structures de longueurpuiTransitionContextCount
. La taille de structure est donnée paruiSizeOfContext
, et doit correspondre à la taille de SimpleContext ouCONTEXT
pour l’architecture.wszTextOut
est écrit au format suivant :"<ModuleName>!<Function Name>[+<offset in hex>] ... (TRANSITION) ..."
Si le décalage en hexadécimalesl est 0x0, aucun décalage n’est écrit.
En l’absence de code managé sur le thread actuellement en contexte, la fonction retourne SOS_E_NOMANAGEDCODE.
Le
Flags
paramètre est 0 ou SOS_STACKTRACE_SHOWADDRESSES pour voir EBP et ESP devant chaque lignemodule!functionname
. 0 par défaut.#define SOS_STACKTRACE_SHOWADDRESSES 0x00000001
Spécifications
Plateformes : Consultez Configuration requise.
En-tête : SOS_Stacktrace.h
Versions de .NET Framework : Disponible depuis la version 2.0