ntdll: Subtract an offset from pc if dispatch->ControlPcIsUnwound on arm.
This fixes unwinding from functions ending with a call to a function that won't return. This matches what is done on the PE side in the call to lookup_function_info. Signed-off-by: Martin Storsjö <martin@martin.st> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
d00c897749
commit
1fb4ce83f4
|
@ -229,7 +229,7 @@ extern void raise_func_trampoline( EXCEPTION_RECORD *rec, CONTEXT *context, void
|
|||
NTSTATUS CDECL unwind_builtin_dll( ULONG type, struct _DISPATCHER_CONTEXT *dispatch, CONTEXT *context )
|
||||
{
|
||||
#ifdef HAVE_LIBUNWIND
|
||||
DWORD ip = context->Pc;
|
||||
DWORD ip = context->Pc - (dispatch->ControlPcIsUnwound ? 2 : 0);
|
||||
unw_context_t unw_context;
|
||||
unw_cursor_t cursor;
|
||||
unw_proc_info_t info;
|
||||
|
|
Loading…
Reference in New Issue