_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 ipuiTextLength
nie ma wartości null, funkcja zwraca długość ciągu w elemeciepuiTextLength
.Jeśli
wszTextOut
wartość nie ma wartości null, funkcja przechowuje tekst wwszTextOut
maksymalnie lokalizacji wskazanej przezpuiTextLength
. 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
obiepuiTransitionContextCount
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 ipuiTransitionContextCount
nie ma wartości null, funkcja zwraca wymaganą liczbę wpisów kontekstu w plikupuiTransitionContextCount
.Jeśli
pTransitionContexts
parametr nie ma wartości null, funkcja traktuje ją jako tablicę struktur o długościpuiTransitionContextCount
. Rozmiar struktury jest podawany przezuiSizeOfContext
element i musi być rozmiarem SimpleContext lubCONTEXT
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żdymmodule!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