Partager via


_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] Client débogué.

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 du 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 ligne module!functionname.

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 et puiTextLength n’a pas la valeur Null, la fonction renvoie la longueur de chaîne dans puiTextLength.

  • Si wszTextOut n’a pas la valeur Null, la fonction stocke du texte dans wszTextOut jusqu’à l’emplacement indiqué par puiTextLength. 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 et puiTransitionContextCount 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 et puiTransitionContextCount n’a pas la valeur Null, la fonction retourne le nombre nécessaire d’entrées de contexte dans puiTransitionContextCount.

  • Si pTransitionContexts n’a pas la valeur Null, la fonction le traite comme un tableau de structures de longueur puiTransitionContextCount. La taille de structure est donnée par uiSizeOfContext, et doit correspondre à la taille de SimpleContext ou CONTEXT 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 ligne module!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

Voir aussi