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:
parent
4238fa55c8
commit
9e81e9efee
1 changed files with 5 additions and 2 deletions
|
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue