[1/10] ntdll: Fix setting the ExceptionAddress on ARM

André Hentschel nerv at dawncrow.de
Fri Apr 15 12:32:05 CDT 2011


Wow, it seems i was very unsure back then... :)
---
 dlls/ntdll/signal_arm.c |    8 ++++----
 1 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/dlls/ntdll/signal_arm.c b/dlls/ntdll/signal_arm.c
index 992b63c..0934164 100644
--- a/dlls/ntdll/signal_arm.c
+++ b/dlls/ntdll/signal_arm.c
@@ -493,7 +493,7 @@ static void fpe_handler( int signal, siginfo_t *siginfo, void *sigcontext )
     }
     rec.ExceptionFlags   = EXCEPTION_CONTINUABLE;
     rec.ExceptionRecord  = NULL;
-    /*rec.ExceptionAddress = (LPVOID)context.Iar;*/
+    rec.ExceptionAddress = (LPVOID)context.Pc;
     rec.NumberParameters = 0;
     status = raise_exception( &rec, &context, TRUE );
     if (status) raise_status( status, &rec );
@@ -519,7 +519,7 @@ static void int_handler( int signal, siginfo_t *siginfo, void *sigcontext )
         rec.ExceptionCode    = CONTROL_C_EXIT;
         rec.ExceptionFlags   = EXCEPTION_CONTINUABLE;
         rec.ExceptionRecord  = NULL;
-        /*rec.ExceptionAddress = (LPVOID)context.Iar;*/
+        rec.ExceptionAddress = (LPVOID)context.Pc;
         rec.NumberParameters = 0;
         status = raise_exception( &rec, &context, TRUE );
         if (status) raise_status( status, &rec );
@@ -543,7 +543,7 @@ static void abrt_handler( int signal, siginfo_t *siginfo, void *sigcontext )
     rec.ExceptionCode    = EXCEPTION_WINE_ASSERTION;
     rec.ExceptionFlags   = EH_NONCONTINUABLE;
     rec.ExceptionRecord  = NULL;
-    /*rec.ExceptionAddress = (LPVOID)context.Iar;*/
+    rec.ExceptionAddress = (LPVOID)context.Pc;
     rec.NumberParameters = 0;
     status = raise_exception( &rec, &context, TRUE );
     if (status) raise_status( status, &rec );
@@ -726,7 +726,7 @@ void WINAPI RtlRaiseException( EXCEPTION_RECORD *rec )
     NTSTATUS status;
 
     RtlCaptureContext( &context );
-    /*rec->ExceptionAddress = (void *)context.Iar;*/
+    rec->ExceptionAddress = (LPVOID)context.Pc;
     status = raise_exception( rec, &context, TRUE );
     if (status) raise_status( status, rec );
 }
-- 

Best Regards, André Hentschel



More information about the wine-patches mailing list