Wenn ich auf Abstürze stoße, zeigt der Debugger normalerweise an spezifische Fehlercodes wie „Ungültiger Zeigerzugriff“ oder ähnliche Probleme. In diesem Fall scheint der Debugger jedoch keine Benutzerausnahme anzuzeigen, sondern vielmehr auf die letzte Ausnahme im Zusammenhang mit der Kontextdeaktivierung zu verweisen. Ich vermute, dass irgendwo in meiner Anwendung eine nicht behandelte Benutzerausnahme auftritt, die dazu führen könnte, dass der Stapelabwicklungsprozess die Aktivierungskontextverwaltung stört.
Ich vermute, dass ntdll.dll!KiUserExceptionDispatch () im Stack-Trace unterstützt meine Theorie, dass es vor dem Problem mit dem Aktivierungskontext möglicherweise eine nicht behandelte Benutzerausnahme gegeben hat.
Vielen Dank im Voraus für Ihre Erkenntnisse!
Hier ist mein vereinfachter Aufruf Stapel:
Code: Select all
ntdll.dll!RtlDeactivateActivationContext() Unknown
kernel32.dll!DeactivateActCtxWorker() Unknown
KERNELBASE.dll!DeactivateActCtx() Unknown
mfc100.dll!__GSHandlerCheck_SEH() Unknown
msvcr100.dll!__C_specific_handler(_EXCEPTION_RECORD * ExceptionRecord, void * EstablisherFrame, _CONTEXT * ContextRecord, _DISPATCHER_CONTEXT * DispatcherContext) C
ntdll.dll!RtlpExecuteHandlerForUnwind() Unknown
ntdll.dll!RtlUnwindEx() Unknown
ntdll.dll!__C_specific_handler() Unknown
ntdll.dll!RtlpExecuteHandlerForException() Unknown
ntdll.dll!RtlDispatchException() Unknown
ntdll.dll!KiUserExceptionDispatch() Unknown
MyModule.dll!__chkstk() Line 109 Unknown
MyModule.dll!foo() Line 40101 C++