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 epuiTextLength
non è Null, la funzione restituisce la lunghezza della stringa inpuiTextLength
.Se
wszTextOut
non è Null, la funzione archivia il testo finowszTextOut
alla posizione indicata dapuiTextLength
. 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
epuiTransitionContextCount
sono entrambi Null. In questo caso, la funzione fornisce ai chiamanti solo l'output di testo dei nomi delle funzioni.Se
pTransitionContexts
è null epuiTransitionContextCount
non è Null, la funzione restituisce il numero necessario di voci di contesto inpuiTransitionContextCount
.Se
pTransitionContexts
non è Null, la funzione la considera come una matrice di strutture di lunghezzapuiTransitionContextCount
. Le dimensioni della struttura sono specificate dauiSizeOfContext
e devono essere le dimensioni di SimpleContext oCONTEXT
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 ognimodule!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