_EFN_StackTrace – funkce
Poskytuje textovou reprezentaci trasování spravovaného zásobníku a pole CONTEXT
záznamů, jednu pro každý přechod mezi nespravovaným a spravovaným kódem.
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
);
Parametry
Client
[v] Klient, který je laděný.
wszTextOut
[ven] Textové znázornění trasování zásobníku
puiTextLength
[ven] Ukazatel na počet znaků v wszTextOut
.
pTransitionContexts
[ven] Pole kontextů přechodu.
puiTransitionContextCount
[ven] Ukazatel na počet kontextů přechodu v poli.
uiSizeOfContext
[v] Velikost kontextové struktury.
Flags
[v] Nastavte hodnotu 0 nebo SOS_STACKTRACE_SHOWADDRESSES (0x01), aby se před každým module!functionname
řádkem zobrazil registr EBP a ukazatel zásobníku (ESP).
Poznámky
Strukturu _EFN_StackTrace
lze volat z programového rozhraní WinDbg. Parametry se používají takto:
Pokud
wszTextOut
je null apuiTextLength
není null, vrátí funkce délku řetězce vpuiTextLength
.Pokud
wszTextOut
není null, funkce uloží textwszTextOut
až do umístění určeného parametrempuiTextLength
. Vrátí se úspěšně, pokud v vyrovnávací paměti bylo dostatek místa, nebo vrátí E_OUTOFMEMORY, pokud vyrovnávací paměť nebyla dostatečně dlouhá.Přechodová část funkce se ignoruje, pokud
pTransitionContexts
apuiTransitionContextCount
obě mají hodnotu null. V tomto případě funkce poskytuje volajícím textový výstup pouze s názvy funkcí.Pokud
pTransitionContexts
je null apuiTransitionContextCount
není null, vrátí funkce potřebný počet kontextových položek vpuiTransitionContextCount
.Pokud
pTransitionContexts
není null, funkce ji považuje za pole struktur délkypuiTransitionContextCount
. Velikost struktury je dánauiSizeOfContext
a musí být velikost SimpleContext neboCONTEXT
pro architekturu.wszTextOut
je zapsán v následujícím formátu:"<ModuleName>!<Function Name>[+<offset in hex>] ... (TRANSITION) ..."
Pokud je posun v šestnáctkovém formátu 0x0, nezapíše se žádný posun.
Pokud v kontextu není žádný spravovaný kód ve vlákně, vrátí funkce SOS_E_NOMANAGEDCODE.
Parametr
Flags
je buď 0, nebo SOS_STACKTRACE_SHOWADDRESSES pro zobrazení EBP a ESP před každýmmodule!functionname
řádkem. Ve výchozím nastavení je to 0.#define SOS_STACKTRACE_SHOWADDRESSES 0x00000001
Požadavky
Platformy: Viz požadavky na systém.
Hlavička: SOS_Stacktrace.h
Verze rozhraní .NET Framework: Dostupné od verze 2.0