ntdll: Send debug event before pushing exception data on ARM.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
Alexandre Julliard 2020-07-15 10:34:47 +02:00
parent 1e4865ffcf
commit adb4e74b47
1 changed files with 13 additions and 1 deletions

View File

@ -529,12 +529,24 @@ static void setup_exception( ucontext_t *sigcontext, EXCEPTION_RECORD *rec )
CONTEXT context;
EXCEPTION_RECORD rec;
} *stack;
void *stack_ptr = (void *)(SP_sig(sigcontext) & ~3);
CONTEXT context;
NTSTATUS status;
rec->ExceptionAddress = (void *)PC_sig(sigcontext);
save_context( &context, sigcontext );
status = send_debug_event( rec, &context, TRUE );
if (status == DBG_CONTINUE || status == DBG_EXCEPTION_HANDLED)
{
restore_context( &context, sigcontext );
return;
}
stack = virtual_setup_exception( stack_ptr, sizeof(*stack), rec );
stack->rec = *rec;
save_context( &stack->context, sigcontext );
stack->context = context;
/* now modify the sigcontext to return to the raise function */
SP_sig(sigcontext) = (DWORD)stack;