Condividi tramite


Funzione _EFN_StackTrace

Fornisce una rappresentazione testuale di una traccia dello stack gestito e una matrice di record CONTEXT, uno per ogni transizione tra codice non gestito e gestito.

Sintassi

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
);

Parametri

Client [in] Il client sottoposto a debug.

wszTextOut [out] Rappresentazione testuale dell'analisi dello stack.

puiTextLength [out] Puntatore al numero di caratteri in wszTextOut.

pTransitionContexts [out] Matrice di contesti di transizione.

puiTransitionContextCount [out] Puntatore al numero di contesti di transizione nella matrice.

uiSizeOfContext [in] Dimensioni della struttura del contesto.

Flags [in] Impostare su 0 o SOS_STACKTRACE_SHOWADDRESSES (0x01) per visualizzare il registro EBP e il puntatore allo stack di immissione (ESP) davanti a ogni module!functionname riga.

Osservazioni:

La _EFN_StackTrace struttura può essere chiamata da un'interfaccia a livello di codice WinDbg. I parametri vengono usati come segue:

  • Se wszTextOut è null e puiTextLength non è Null, la funzione restituisce la lunghezza della stringa in puiTextLength.

  • Se wszTextOut non è Null, la funzione archivia il testo fino wszTextOut alla posizione indicata da puiTextLength. Restituisce correttamente se è presente spazio sufficiente nel buffer o restituisce E_OUTOFMEMORY se il buffer non era abbastanza lungo.

  • La parte di transizione della funzione viene ignorata se pTransitionContexts e puiTransitionContextCount sono entrambi Null. In questo caso, la funzione fornisce ai chiamanti solo l'output di testo dei nomi delle funzioni.

  • Se pTransitionContexts è null e puiTransitionContextCount non è Null, la funzione restituisce il numero necessario di voci di contesto in puiTransitionContextCount.

  • Se pTransitionContexts non è Null, la funzione la considera come una matrice di strutture di lunghezza puiTransitionContextCount. Le dimensioni della struttura sono specificate da uiSizeOfContexte devono essere le dimensioni di SimpleContext o CONTEXT per l'architettura.

  • wszTextOut è scritto nel formato seguente:

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • Se l'offset in esadecimale è 0x0, non viene scritto alcun offset.

  • Se nel contesto non è presente alcun codice gestito, la funzione restituisce SOS_E_NOMANAGEDCODE.

  • Il Flags parametro è 0 o SOS_STACKTRACE_SHOWADDRESSES per vedere EBP ed ESP davanti a ogni module!functionname riga. Per impostazione predefinita, è 0.

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

Requisiti

Piattaforme: vedere Requisiti di sistema.

Intestazione: SOS_Stacktrace.h

Versioni di .NET Framework: disponibili dalla versione 2.0

Vedi anche