Commit a38f7e86 authored by André Hentschel's avatar André Hentschel Committed by Alexandre Julliard

ntdll: Fix setting the ExceptionAddress on ARM.

parent be729282
...@@ -493,7 +493,7 @@ static void fpe_handler( int signal, siginfo_t *siginfo, void *sigcontext ) ...@@ -493,7 +493,7 @@ static void fpe_handler( int signal, siginfo_t *siginfo, void *sigcontext )
} }
rec.ExceptionFlags = EXCEPTION_CONTINUABLE; rec.ExceptionFlags = EXCEPTION_CONTINUABLE;
rec.ExceptionRecord = NULL; rec.ExceptionRecord = NULL;
/*rec.ExceptionAddress = (LPVOID)context.Iar;*/ rec.ExceptionAddress = (LPVOID)context.Pc;
rec.NumberParameters = 0; rec.NumberParameters = 0;
status = raise_exception( &rec, &context, TRUE ); status = raise_exception( &rec, &context, TRUE );
if (status) raise_status( status, &rec ); if (status) raise_status( status, &rec );
...@@ -519,7 +519,7 @@ static void int_handler( int signal, siginfo_t *siginfo, void *sigcontext ) ...@@ -519,7 +519,7 @@ static void int_handler( int signal, siginfo_t *siginfo, void *sigcontext )
rec.ExceptionCode = CONTROL_C_EXIT; rec.ExceptionCode = CONTROL_C_EXIT;
rec.ExceptionFlags = EXCEPTION_CONTINUABLE; rec.ExceptionFlags = EXCEPTION_CONTINUABLE;
rec.ExceptionRecord = NULL; rec.ExceptionRecord = NULL;
/*rec.ExceptionAddress = (LPVOID)context.Iar;*/ rec.ExceptionAddress = (LPVOID)context.Pc;
rec.NumberParameters = 0; rec.NumberParameters = 0;
status = raise_exception( &rec, &context, TRUE ); status = raise_exception( &rec, &context, TRUE );
if (status) raise_status( status, &rec ); if (status) raise_status( status, &rec );
...@@ -543,7 +543,7 @@ static void abrt_handler( int signal, siginfo_t *siginfo, void *sigcontext ) ...@@ -543,7 +543,7 @@ static void abrt_handler( int signal, siginfo_t *siginfo, void *sigcontext )
rec.ExceptionCode = EXCEPTION_WINE_ASSERTION; rec.ExceptionCode = EXCEPTION_WINE_ASSERTION;
rec.ExceptionFlags = EH_NONCONTINUABLE; rec.ExceptionFlags = EH_NONCONTINUABLE;
rec.ExceptionRecord = NULL; rec.ExceptionRecord = NULL;
/*rec.ExceptionAddress = (LPVOID)context.Iar;*/ rec.ExceptionAddress = (LPVOID)context.Pc;
rec.NumberParameters = 0; rec.NumberParameters = 0;
status = raise_exception( &rec, &context, TRUE ); status = raise_exception( &rec, &context, TRUE );
if (status) raise_status( status, &rec ); if (status) raise_status( status, &rec );
...@@ -726,7 +726,7 @@ void WINAPI RtlRaiseException( EXCEPTION_RECORD *rec ) ...@@ -726,7 +726,7 @@ void WINAPI RtlRaiseException( EXCEPTION_RECORD *rec )
NTSTATUS status; NTSTATUS status;
RtlCaptureContext( &context ); RtlCaptureContext( &context );
/*rec->ExceptionAddress = (void *)context.Iar;*/ rec->ExceptionAddress = (LPVOID)context.Pc;
status = raise_exception( rec, &context, TRUE ); status = raise_exception( rec, &context, TRUE );
if (status) raise_status( status, rec ); if (status) raise_status( status, rec );
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment