_EFN_StackTrace funktion
Tillhandahåller en textrepresentation av en hanterad stackspårning och en matris med CONTEXT
poster, en för varje övergång mellan ohanterad och hanterad kod.
Syntax
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
);
Parametrar
Client
[i] Klienten debugged.
wszTextOut
[ut] Textrepresentationen av stackspårningen.
puiTextLength
[ut] En pekare till antalet tecken i wszTextOut
.
pTransitionContexts
[ut] Matrisen med övergångskontexter.
puiTransitionContextCount
[ut] En pekare till antalet övergångskontexter i matrisen.
uiSizeOfContext
[i] Storleken på kontextstrukturen.
Flags
[i] Ange antingen 0 eller SOS_STACKTRACE_SHOWADDRESSES (0x01) för att visa EBP-registret och ange stackpekaren (ESP) framför varje module!functionname
rad.
Kommentarer
Strukturen _EFN_StackTrace
kan anropas från ett WinDbg-programmatiskt gränssnitt. Parametrar används på följande sätt:
Om
wszTextOut
är null ochpuiTextLength
inte är null returnerar funktionen stränglängden ipuiTextLength
.Om
wszTextOut
inte är null lagrar funktionen text uppwszTextOut
till den plats som anges avpuiTextLength
. Den returnerar korrekt om det fanns tillräckligt med utrymme i bufferten eller returnerar E_OUTOFMEMORY om bufferten inte var tillräckligt lång.Övergångsdelen av funktionen ignoreras om
pTransitionContexts
ochpuiTransitionContextCount
är båda null. I det här fallet ger funktionen anropare textutdata för endast funktionsnamnen.Om
pTransitionContexts
är null ochpuiTransitionContextCount
inte är null returnerar funktionen det nödvändiga antalet kontextposter ipuiTransitionContextCount
.Om
pTransitionContexts
inte är null behandlar funktionen den som en matris med längdstrukturerpuiTransitionContextCount
. Strukturstorleken anges avuiSizeOfContext
, och måste vara storleken på SimpleContext ellerCONTEXT
för arkitekturen.wszTextOut
skrivs i följande format:"<ModuleName>!<Function Name>[+<offset in hex>] ... (TRANSITION) ..."
Om förskjutningen i hex är 0x0 skrivs ingen förskjutning.
Om det inte finns någon hanterad kod i tråden i kontexten returnerar funktionen SOS_E_NOMANAGEDCODE.
Parametern
Flags
är antingen 0 eller SOS_STACKTRACE_SHOWADDRESSES för att se EBP och ESP framför varjemodule!functionname
rad. Som standard är det 0.#define SOS_STACKTRACE_SHOWADDRESSES 0x00000001
Krav
Plattformar: Se Systemkrav.
Rubrik: SOS_Stacktrace.h
.NET Framework-versioner: Tillgänglig sedan 2.0