IDebugControl5::GetContextStackTraceEx-Methode (dbgeng.h)
Die GetContextStackTraceEx-Methode gibt die Frames am oberen Rand des Aufrufstapels zurück, beginnend mit einem beliebigen Registrieren des Kontexts und Zurückgeben des rekonstruierbaren Registerkontexts für jeden Stapelframe. Die GetContextStackTraceEx-Methode bietet Inlineframeunterstützung. Weitere Informationen zum Arbeiten mit Inlinefunktionen finden Sie unter Debuggen von optimiertem Code und Inlinefunktionen.
Syntax
HRESULT GetContextStackTraceEx(
[in, optional] PVOID StartContext,
[in] ULONG StartContextSize,
[out, optional] PDEBUG_STACK_FRAME_EX Frames,
[in] ULONG FramesSize,
[out, optional] PVOID FrameContexts,
[in] ULONG FrameContextsSize,
[in] ULONG FrameContextsEntrySize,
[out, optional] PULONG FramesFilled
);
Parameter
[in, optional] StartContext
Gibt den Registerkontext für den oberen Rand des Stapels an.
[in] StartContextSize
Gibt die Größe des StartContext- Registerkontexts in Byte an.
[out, optional] Frames
Empfängt die Stapelframes. Die Anzahl der Elemente, die dieses Array enthält, ist FrameSize. Wenn Frames-NULL-ist, werden diese Informationen nicht zurückgegeben.
[in] FramesSize
Gibt die Anzahl der Elemente im Array Frames-an.
[out, optional] FrameContexts
Empfängt den rekonstruierbaren Registerkontext für jeden Frame im Stapel. Die Einträge in diesem Array entsprechen den Einträgen im Frames Array. Der Typ des Threadkontexts ist die CONTEXT-Struktur für den effektiven Prozessor des Ziels. Wenn FrameContexts-NULL-ist, werden diese Informationen nicht zurückgegeben.
[in] FrameContextsSize
Gibt die Größe des Speichers in Bytes an, auf den FrameContextsverweist. Die Anzahl der zurückgegebenen Stapelframes entspricht der Anzahl der zurückgegebenen Kontexte, und FrameContextsSize- muss FramesSize Mal FrameContextsEntrySizeentsprechen.
[in] FrameContextsEntrySize
Gibt die Größe jedes Framekontexts in Byte in FrameContexts-an.
[out, optional] FramesFilled
Empfängt die Anzahl der Frames, die im Array Frames und Kontexten in FrameContexts-platziert wurden. Wenn FramesFilled-NULL-ist, werden diese Informationen nicht zurückgegeben.
Rückgabewert
Rückgabecode | Beschreibung |
---|---|
|
Die Methode war erfolgreich. |
Diese Methode kann auch Fehlerwerte zurückgeben. Weitere Informationen finden Sie unter Rückgabewerte.
Bemerkungen
Die Stapelablaufverfolgung, die an Frames zurückgegeben wurde, und FrameContexts- können mit OutputContextStackTraceExgedruckt werden.
Es ist üblich, dass Stapel sich entspannen, um nur eine Teilmenge der Register wiederherzustellen. Beispielsweise wird der veränderliche Registerzustand von Stapeln nicht immer wiederhergestellt, da die veränderliche Register Neuregister sind und Code sie nicht beibehalten muss. Register, die beim Entspannen nicht wiederhergestellt werden, bleiben erhalten, da der letzte Wert wiederhergestellt wird. Daher sollten Sie bei Verwendung des Registerzustands, der möglicherweise nicht durch eine Entspannung wiederhergestellt wird, vorsichtserwendbar sein.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Desktop |
Header- | dbgeng.h (include Dbgeng.h, Ntddk.h) |