mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2024-11-18 22:07:38 +01:00
Don't give up on proc finding if dwarf_callback fails, but
don't bother completing the dwarf search work either. Move on to the arm method.
This commit is contained in:
parent
be06809b5f
commit
4f14d9714f
1 changed files with 10 additions and 13 deletions
|
@ -523,21 +523,18 @@ arm_find_proc_info (unw_addr_space_t as, unw_word_t ip,
|
||||||
ret = dl_iterate_phdr (dwarf_callback, &cb_data);
|
ret = dl_iterate_phdr (dwarf_callback, &cb_data);
|
||||||
SIGPROCMASK (SIG_SETMASK, &saved_mask, NULL);
|
SIGPROCMASK (SIG_SETMASK, &saved_mask, NULL);
|
||||||
|
|
||||||
if (ret <= 0)
|
if (ret > 0)
|
||||||
{
|
{
|
||||||
Debug (14, "IP=0x%lx not found\n", (long) ip);
|
if (cb_data.single_fde)
|
||||||
return -UNW_ENOINFO;
|
/* already got the result in *pi */
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (cb_data.di_debug.format != -1)
|
||||||
|
ret = tdep_search_unwind_table (as, ip, &cb_data.di_debug, pi,
|
||||||
|
need_unwind_info, arg);
|
||||||
|
else
|
||||||
|
ret = -UNW_ENOINFO;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (cb_data.single_fde)
|
|
||||||
/* already got the result in *pi */
|
|
||||||
return 0;
|
|
||||||
|
|
||||||
if (cb_data.di_debug.format != -1)
|
|
||||||
ret = tdep_search_unwind_table (as, ip, &cb_data.di_debug, pi,
|
|
||||||
need_unwind_info, arg);
|
|
||||||
else
|
|
||||||
ret = -UNW_ENOINFO;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (ret < 0 && UNW_TRY_METHOD (UNW_ARM_METHOD_EXIDX))
|
if (ret < 0 && UNW_TRY_METHOD (UNW_ARM_METHOD_EXIDX))
|
||||||
|
|
Loading…
Reference in a new issue