Module: wine Branch: stable Commit: 2785c5925bd65407439144c8f70a993f99f394d6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=2785c5925bd65407439144c8f7... Author: Sebastian Lackner <sebastian(a)fds-team.de> Date: Thu Feb 18 09:58:13 2016 +0100 ntdll: Mimic Windows behaviour when calling debug service. Signed-off-by: Sebastian Lackner <sebastian(a)fds-team.de> Signed-off-by: Alexandre Julliard <julliard(a)winehq.org> (cherry picked from commit 218bc84e03eaa807caca58027334e9b173dcfa7e) Signed-off-by: Michael Stefaniuc <mstefani(a)winehq.org> --- dlls/ntdll/signal_i386.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c index 10235fe..5708aae 100644 --- a/dlls/ntdll/signal_i386.c +++ b/dlls/ntdll/signal_i386.c @@ -1940,6 +1940,21 @@ static void WINAPI raise_segv_exception( EXCEPTION_RECORD *rec, CONTEXT *context goto done; } break; + case EXCEPTION_BREAKPOINT: + if (!is_wow64) + { + /* On Wow64, the upper DWORD of Rax contains garbage, and the debug + * service is usually not recognized when called from usermode. */ + switch (rec->ExceptionInformation[0]) + { + case 1: /* BREAKPOINT_PRINT */ + case 3: /* BREAKPOINT_LOAD_SYMBOLS */ + case 4: /* BREAKPOINT_UNLOAD_SYMBOLS */ + case 5: /* BREAKPOINT_COMMAND_STRING (>= Win2003) */ + goto done; + } + } + break; } status = NtRaiseException( rec, context, TRUE ); raise_status( status, rec );