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