Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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
wszTextOutNULL undpuiTextLengthnicht NULL ist, gibt die Funktion die Zeichenfolgenlänge inpuiTextLengthzurück.Wenn
wszTextOutnicht NULL ist, speichert die Funktion Text inwszTextOutbis zu der Position, die durchpuiTextLengthangegeben 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
pTransitionContextsundpuiTransitionContextCountbeide NULL sind. In diesem Fall stellt die Funktion Aufrufern als Textausgabe nur die Funktionsnamen zur Verfügung.Wenn
pTransitionContextsNULL undpuiTransitionContextCountnicht NULL ist, gibt die Funktion die erforderliche Anzahl von Kontexteinträgen inpuiTransitionContextCountzurück.Wenn
pTransitionContextsnicht NULL ist, behandelt die Funktion die Ausgabe als Array von Strukturen der LängepuiTransitionContextCount. Die Strukturgröße wird durchuiSizeOfContextangegeben und muss die Größe von SimpleContext oderCONTEXTfür die Architektur sein.wszTextOutwird 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.