From: Paul Gofman pgofman@codeweavers.com
--- dlls/kernel32/tests/debugger.c | 4 ++-- dlls/kernelbase/debug.c | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/dlls/kernel32/tests/debugger.c b/dlls/kernel32/tests/debugger.c index 7d10266ce0b..3d3dd0a402f 100644 --- a/dlls/kernel32/tests/debugger.c +++ b/dlls/kernel32/tests/debugger.c @@ -2460,7 +2460,7 @@ static LONG WINAPI test_unhandled_exception_filter_topfilter( EXCEPTION_POINTERS ret = UnhandledExceptionFilter( ep ); ok( depth == 1, "got %d.\n", depth ); depth = 1; - todo_wine ok( ret == EXCEPTION_CONTINUE_SEARCH, "got %#lx.\n", ret ); + ok( ret == EXCEPTION_CONTINUE_SEARCH, "got %#lx.\n", ret ); --depth; rec->ExceptionFlags = 0; return EXCEPTION_CONTINUE_SEARCH; @@ -2481,7 +2481,7 @@ static void test_unhandled_exception_filter(void)
rec.ExceptionFlags = EXCEPTION_NESTED_CALL; ret = UnhandledExceptionFilter( &ep ); - todo_wine ok( ret == EXCEPTION_CONTINUE_SEARCH, "got %#lx.\n", ret ); + ok( ret == EXCEPTION_CONTINUE_SEARCH, "got %#lx.\n", ret ); rec.ExceptionFlags &= ~EXCEPTION_NESTED_CALL; ret = UnhandledExceptionFilter( &ep ); ok( ret == EXCEPTION_EXECUTE_HANDLER, "got %#lx.\n", ret ); diff --git a/dlls/kernelbase/debug.c b/dlls/kernelbase/debug.c index bf3547f9db8..6a332e971ec 100644 --- a/dlls/kernelbase/debug.c +++ b/dlls/kernelbase/debug.c @@ -782,7 +782,7 @@ LONG WINAPI UnhandledExceptionFilter( EXCEPTION_POINTERS *epointers )
if ((GetErrorMode() & SEM_NOGPFAULTERRORBOX) || !start_debugger_atomic( epointers ) || !NtCurrentTeb()->Peb->BeingDebugged) - return EXCEPTION_EXECUTE_HANDLER; + return nested ? EXCEPTION_CONTINUE_SEARCH : EXCEPTION_EXECUTE_HANDLER; } return EXCEPTION_CONTINUE_SEARCH; }