1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-06-28 12:11:45 +02:00

Support dynamic unwind info on ARM

This commit is contained in:
Yichao Yu 2016-09-30 00:40:56 -04:00 committed by Dave Watson
parent 1a4b357598
commit ac1427d87f
2 changed files with 9 additions and 2 deletions

View file

@ -45,8 +45,14 @@ arm_exidx_step (struct cursor *c)
/* mark PC unsaved */
c->dwarf.loc[UNW_ARM_R15] = DWARF_NULL_LOC;
if ((ret = tdep_find_proc_info (&c->dwarf, c->dwarf.ip, 1)) < 0)
return ret;
/* check dynamic info first --- it overrides everything else */
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)
return -UNW_ENOINFO;

View file

@ -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_REMOTE_TABLE:
case UNW_INFO_FORMAT_ARM_EXIDX:
case UNW_INFO_FORMAT_IP_OFFSET:
#ifdef tdep_search_unwind_table
/* call platform-specific search routine: */