Re: [ros-diffs] 02/04: [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.
Alex Ionescu <ionucu-XzQKRVe1yT0V+D8aMU/[email protected]> Sun, 28 Oct 2018 13:36:25 -0300
| Newsgroups | gmane.os.reactos.kernel |
|---|---|
| Message-ID | <CAJ-90NJqiPFWgueQTBENv_cfyj52ZV+=SR=1osmHBXjjc7ki1Q@mail.gmail.com> |
Uhh, this change is not correct. It overrides the proper handling of exception filtering -- please revert. Best regards, Alex Ionescu On Sun, Oct 28, 2018 at 9:03 AM Mark Jansen <[email protected]> wrote: > > https://git.reactos.org/?p=reactos.git;a=commitdiff;h=40549483f60aa00e9fc952ba831027028f6df107 > > commit 40549483f60aa00e9fc952ba831027028f6df107 > Author: Mark Jansen <[email protected]> > AuthorDate: Thu Oct 18 22:07:37 2018 +0200 > Commit: Mark Jansen <[email protected]> > 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) > > _______________________________________________ Ros-dev mailing list [email protected] http://www.reactos.org/mailman/listinfo/ros-dev