mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2025-01-24 17:20:30 +01:00
Support dynamic unwind info on ARM
This commit is contained in:
parent
1a4b357598
commit
ac1427d87f
2 changed files with 9 additions and 2 deletions
|
@ -45,8 +45,14 @@ 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;
|
||||||
|
|
||||||
if ((ret = tdep_find_proc_info (&c->dwarf, c->dwarf.ip, 1)) < 0)
|
/* check dynamic info first --- it overrides everything else */
|
||||||
return ret;
|
ret = unwi_find_dynamic_proc_info (c->dwarf.as, c->dwarf.ip, &c->dwarf.pi, 1,
|
||||||
|
c->dwarf.as_arg);
|
||||||
|
if (ret == -UNW_ENOINFO)
|
||||||
|
{
|
||||||
|
if ((ret = tdep_find_proc_info (&c->dwarf, c->dwarf.ip, 1)) < 0)
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
if (c->dwarf.pi.format != UNW_INFO_FORMAT_ARM_EXIDX)
|
if (c->dwarf.pi.format != UNW_INFO_FORMAT_ARM_EXIDX)
|
||||||
return -UNW_ENOINFO;
|
return -UNW_ENOINFO;
|
||||||
|
|
|
@ -49,6 +49,7 @@ unwi_extract_dynamic_proc_info (unw_addr_space_t as, unw_word_t ip,
|
||||||
|
|
||||||
case UNW_INFO_FORMAT_TABLE:
|
case UNW_INFO_FORMAT_TABLE:
|
||||||
case UNW_INFO_FORMAT_REMOTE_TABLE:
|
case UNW_INFO_FORMAT_REMOTE_TABLE:
|
||||||
|
case UNW_INFO_FORMAT_ARM_EXIDX:
|
||||||
case UNW_INFO_FORMAT_IP_OFFSET:
|
case UNW_INFO_FORMAT_IP_OFFSET:
|
||||||
#ifdef tdep_search_unwind_table
|
#ifdef tdep_search_unwind_table
|
||||||
/* call platform-specific search routine: */
|
/* call platform-specific search routine: */
|
||||||
|
|
Loading…
Reference in a new issue