Udostępnij za pośrednictwem


_EFN_StackTrace — Funkcja

Zawiera tekstową reprezentację zarządzanego śledzenia stosu i tablicę rekordów CONTEXT , po jednym dla każdego przejścia między niezarządzanym i zarządzanym kodem.

Składnia

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 [in] Debugowany klient.

wszTextOut [out] Tekstowa reprezentacja śledzenia stosu.

puiTextLength[out] Wskaźnik do liczby znaków w .wszTextOut

pTransitionContexts [out] Tablica kontekstów przejścia.

puiTransitionContextCount [out] Wskaźnik do liczby kontekstów przejścia w tablicy.

uiSizeOfContext [in] Rozmiar struktury kontekstu.

Flags [in] Ustaw wartość 0 lub SOS_STACKTRACE_SHOWADDRESSES (0x01), aby wyświetlić rejestr EBP i wskaźnik stosu wprowadź (ESP) przed każdym module!functionname wierszem.

Uwagi

Struktura _EFN_StackTrace może być wywoływana z interfejsu programowego WinDbg. Parametry są używane w następujący sposób:

  • Jeśli wszTextOut ma wartość null i puiTextLength nie ma wartości null, funkcja zwraca długość ciągu w elemecie puiTextLength.

  • Jeśli wszTextOut wartość nie ma wartości null, funkcja przechowuje tekst w wszTextOut maksymalnie lokalizacji wskazanej przez puiTextLength. Zostanie zwrócony pomyślnie, jeśli w buforze jest wystarczająca ilość miejsca lub zwraca E_OUTOFMEMORY, jeśli bufor nie był wystarczająco długi.

  • Część przejścia funkcji jest ignorowana, jeśli pTransitionContexts obie puiTransitionContextCount wartości mają wartość null. W tym przypadku funkcja udostępnia obiektom wywołującym dane wyjściowe tekstowe tylko nazw funkcji.

  • Jeśli pTransitionContexts parametr ma wartość null i puiTransitionContextCount nie ma wartości null, funkcja zwraca wymaganą liczbę wpisów kontekstu w pliku puiTransitionContextCount.

  • Jeśli pTransitionContexts parametr nie ma wartości null, funkcja traktuje ją jako tablicę struktur o długości puiTransitionContextCount. Rozmiar struktury jest podawany przez uiSizeOfContextelement i musi być rozmiarem SimpleContext lub CONTEXT architektury.

  • wszTextOut jest zapisywany w następującym formacie:

    "<ModuleName>!<Function Name>[+<offset in hex>]
    ...
    (TRANSITION)
    ..."
    
  • Jeśli przesunięcie w szesnastkowym jest 0x0, nie jest zapisywane żadne przesunięcie.

  • Jeśli w wątku aktualnie w kontekście nie ma zarządzanego kodu, funkcja zwraca SOS_E_NOMANAGEDCODE.

  • Parametr Flags ma wartość 0 lub SOS_STACKTRACE_SHOWADDRESSES, aby zobaczyć EBP i ESP przed każdym module!functionname wierszem. Domyślnie jest to 0.

    #define SOS_STACKTRACE_SHOWADDRESSES   0x00000001
    

Wymagania

Platformy: zobacz Wymagania systemowe.

Nagłówek: SOS_Stacktrace.h

Wersje programu .NET Framework: dostępne od wersji 2.0

Zobacz też