Sdílet prostřednictvím


_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 a puiTextLength není null, vrátí funkce délku řetězce v puiTextLength.

  • Pokud wszTextOut není null, funkce uloží text wszTextOut až do umístění určeného parametrem puiTextLength. 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 a puiTransitionContextCount 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 a puiTransitionContextCount není null, vrátí funkce potřebný počet kontextových položek v puiTransitionContextCount.

  • Pokud pTransitionContexts není null, funkce ji považuje za pole struktur délky puiTransitionContextCount. Velikost struktury je dána uiSizeOfContexta musí být velikost SimpleContext nebo CONTEXT 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ým module!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

Viz také