Alexandre Julliard : ntdll: Send debug event before pushing exception data on ARM.
Alexandre Julliard
julliard at winehq.org
Wed Jul 15 16:44:45 CDT 2020
Module: wine
Branch: master
Commit: adb4e74b479d5406454dffa17fe908742306ac6e
URL: https://source.winehq.org/git/wine.git/?a=commit;h=adb4e74b479d5406454dffa17fe908742306ac6e
Author: Alexandre Julliard <julliard at winehq.org>
Date: Wed Jul 15 10:34:47 2020 +0200
ntdll: Send debug event before pushing exception data on ARM.
Signed-off-by: Alexandre Julliard <julliard at winehq.org>
---
dlls/ntdll/unix/signal_arm.c | 14 +++++++++++++-
1 file changed, 13 insertions(+), 1 deletion(-)
diff --git a/dlls/ntdll/unix/signal_arm.c b/dlls/ntdll/unix/signal_arm.c
index 1e8abb494c..34463309de 100644
--- a/dlls/ntdll/unix/signal_arm.c
+++ b/dlls/ntdll/unix/signal_arm.c
@@ -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;
More information about the wine-cvs
mailing list