ntdll: Mimic Windows behaviour when calling debug service.

Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Sebastian Lackner 2016-02-18 09:58:13 +01:00 committed by Alexandre Julliard
parent b0e122f411
commit 218bc84e03
1 changed files with 15 additions and 0 deletions

View File

@ -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 );