mirror of
git://source.winehq.org/git/wine.git
synced 2024-09-16 08:36:20 +00:00
ntdll: Fix breakpoint exceptions on ARM.
This commit is contained in:
parent
4a138da761
commit
8a1420653c
|
@ -998,7 +998,7 @@ NTSTATUS WINAPI NtGetContextThread( HANDLE handle, CONTEXT *context )
|
|||
|
||||
if (!self)
|
||||
{
|
||||
NTSTATUS ret = get_thread_context( handle, &context, &self, IMAGE_FILE_MACHINE_ARMNT );
|
||||
NTSTATUS ret = get_thread_context( handle, context, &self, IMAGE_FILE_MACHINE_ARMNT );
|
||||
if (ret || !self) return ret;
|
||||
}
|
||||
|
||||
|
@ -1077,6 +1077,9 @@ static void setup_exception( ucontext_t *sigcontext, EXCEPTION_RECORD *rec )
|
|||
return;
|
||||
}
|
||||
|
||||
/* fix up instruction pointer in context for EXCEPTION_BREAKPOINT */
|
||||
if (rec->ExceptionCode == EXCEPTION_BREAKPOINT) context.Pc -= 2;
|
||||
|
||||
stack = virtual_setup_exception( stack_ptr, sizeof(*stack), rec );
|
||||
stack->rec = *rec;
|
||||
stack->context = context;
|
||||
|
@ -1348,6 +1351,7 @@ static void segv_handler( int signal, siginfo_t *siginfo, void *sigcontext )
|
|||
return;
|
||||
}
|
||||
case 0xfe: /* breakpoint */
|
||||
PC_sig(context) += 2; /* skip the instruction */
|
||||
rec.ExceptionCode = EXCEPTION_BREAKPOINT;
|
||||
rec.NumberParameters = 1;
|
||||
break;
|
||||
|
|
Loading…
Reference in a new issue