1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-16 13:18:12 +01:00

arm: Handle non-signal frame unwind info lookup in ARM exidx unwinder (#55)

This commit is contained in:
Yichao Yu 2017-10-31 11:52:22 -04:00 committed by Dave Watson
parent 4238fa55c8
commit 9e81e9efee

View file

@ -44,13 +44,16 @@ arm_exidx_step (struct cursor *c)
/* mark PC unsaved */ /* mark PC unsaved */
c->dwarf.loc[UNW_ARM_R15] = DWARF_NULL_LOC; c->dwarf.loc[UNW_ARM_R15] = DWARF_NULL_LOC;
unw_word_t ip = c->dwarf.ip;
if (c->dwarf.use_prev_instr)
--ip;
/* check dynamic info first --- it overrides everything else */ /* check dynamic info first --- it overrides everything else */
ret = unwi_find_dynamic_proc_info (c->dwarf.as, c->dwarf.ip, &c->dwarf.pi, 1, ret = unwi_find_dynamic_proc_info (c->dwarf.as, ip, &c->dwarf.pi, 1,
c->dwarf.as_arg); c->dwarf.as_arg);
if (ret == -UNW_ENOINFO) if (ret == -UNW_ENOINFO)
{ {
if ((ret = tdep_find_proc_info (&c->dwarf, c->dwarf.ip, 1)) < 0) if ((ret = tdep_find_proc_info (&c->dwarf, ip, 1)) < 0)
return ret; return ret;
} }