_EFN_StackTrace-Funktion
Stellt eine Textdarstellung einer verwalteten Stapelüberwachung und ein Array von CONTEXT
-Datensätzen bereit, einen Datensatz für jeden Übergang zwischen nicht verwaltetem und verwaltetem Code.
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
);
Parameter
Client
[in] Der Client, der gedebuggt wird.
wszTextOut
[out] Die Textdarstellung der Stapelablaufverfolgung.
puiTextLength
[out] Ein Zeiger auf die Anzahl der Zeichen in wszTextOut
.
pTransitionContexts
[out] Das Array von Übergangskontexten.
puiTransitionContextCount
[out] Ein Zeiger auf die Anzahl der Übergangskontexte im Array.
uiSizeOfContext
[in] Die Größe der Kontextstruktur.
Flags
[in] Legen Sie entweder 0 oder SOS_STACKTRACE_SHOWADDRESSES (0x01) fest, um das EBP-Register und den Eingabestapelzeiger (ESP) vor jeder module!functionname
Zeile anzuzeigen.
Hinweise
Die _EFN_StackTrace
-Struktur kann über eine befehlsorientierte WinDbg-Benutzerschnittstelle aufgerufen werden. Parameter werden wie folgt verwendet:
Wenn
wszTextOut
NULL undpuiTextLength
nicht NULL ist, gibt die Funktion die Zeichenfolgenlänge inpuiTextLength
zurück.Wenn
wszTextOut
nicht NULL ist, speichert die Funktion Text inwszTextOut
bis zu der Position, die durchpuiTextLength
angegeben wird. Wenn genügend Platz im Puffer vorhanden war, gibt die Rückgabe an, dass der Vorgang erfolgreich war. Wenn der Puffer nicht lang genug war, wird E_OUTOFMEMORY zurückgegeben.Der Übergangsteil der Funktion wird ignoriert, wenn
pTransitionContexts
undpuiTransitionContextCount
beide NULL sind. In diesem Fall stellt die Funktion Aufrufern als Textausgabe nur die Funktionsnamen zur Verfügung.Wenn
pTransitionContexts
NULL undpuiTransitionContextCount
nicht NULL ist, gibt die Funktion die erforderliche Anzahl von Kontexteinträgen inpuiTransitionContextCount
zurück.Wenn
pTransitionContexts
nicht NULL ist, behandelt die Funktion die Ausgabe als Array von Strukturen der LängepuiTransitionContextCount
. Die Strukturgröße wird durchuiSizeOfContext
angegeben und muss die Größe von SimpleContext oderCONTEXT
für die Architektur sein.wszTextOut
wird im folgenden Format ausgegeben:"<ModuleName>!<Function Name>[+<offset in hex>] ... (TRANSITION) ..."
Wenn der hexadezimale Offset 0x0 ist, wird kein Offset ausgegeben.
Wenn für den Thread im derzeitigen Kontext kein verwalteter Code vorhanden ist, gibt die Funktion SOS_E_NOMANAGEDCODE zurück.
Der
Flags
-Parameter ist entweder 0 oder SOS_STACKTRACE_SHOWADDRESSES, wenn EBP und ESP vor jedermodule!functionname
-Zeile angezeigt werden. Er ist standardmäßig auf „0“ festgelegt.#define SOS_STACKTRACE_SHOWADDRESSES 0x00000001
Anforderungen
Plattformen: Informationen finden Sie unter Systemanforderungen.
Header: SOS_Stacktrace.h
.NET Framework-Versionen: Seit 2.0 verfügbar.