https://git.reactos.org/?p=reactos.git;a=commitdiff;h=40549483f60aa00e9fc952...
commit 40549483f60aa00e9fc952ba831027028f6df107 Author: Mark Jansen mark.jansen@reactos.org AuthorDate: Thu Oct 18 22:07:37 2018 +0200 Commit: Mark Jansen mark.jansen@reactos.org CommitDate: Sun Oct 28 13:01:38 2018 +0100
[KERNEL32] Use the default UnhandledExceptionFilter in BaseThreadStartup. This should allow unhandled exceptions in a thread to trigger our crash reporter, instead of killing the process directly. --- dll/win32/kernel32/client/thread.c | 25 +------------------------ 1 file changed, 1 insertion(+), 24 deletions(-)
diff --git a/dll/win32/kernel32/client/thread.c b/dll/win32/kernel32/client/thread.c index 8fc5a7ad61..2ff0102483 100644 --- a/dll/win32/kernel32/client/thread.c +++ b/dll/win32/kernel32/client/thread.c @@ -26,29 +26,6 @@ BasepNotifyCsrOfThread(IN HANDLE ThreadHandle,
/* FUNCTIONS ******************************************************************/
-static -LONG BaseThreadExceptionFilter(EXCEPTION_POINTERS * ExceptionInfo) -{ - LONG ExceptionDisposition = EXCEPTION_EXECUTE_HANDLER; - LPTOP_LEVEL_EXCEPTION_FILTER RealFilter; - - RealFilter = RtlDecodePointer(GlobalTopLevelExceptionFilter); - if (RealFilter != NULL) - { - _SEH2_TRY - { - ExceptionDisposition = RealFilter(ExceptionInfo); - } - _SEH2_EXCEPT(EXCEPTION_EXECUTE_HANDLER) - { - ExceptionDisposition = UnhandledExceptionFilter(ExceptionInfo); - } - _SEH2_END; - } - - return ExceptionDisposition; -} - __declspec(noreturn) VOID WINAPI @@ -68,7 +45,7 @@ BaseThreadStartup(IN LPTHREAD_START_ROUTINE lpStartAddress, /* Get the exit code from the Thread Start */ ExitThread((lpStartAddress)((PVOID)lpParameter)); } - _SEH2_EXCEPT(BaseThreadExceptionFilter(_SEH2_GetExceptionInformation())) + _SEH2_EXCEPT(UnhandledExceptionFilter(_SEH2_GetExceptionInformation())) { /* Get the Exit code from the SEH Handler */ if (!BaseRunningInServerProcess)