mirror of
https://github.com/tobast/libunwind-eh_elf.git
synced 2025-04-01 20:02:17 +02: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);
|
||||
SIGPROCMASK (SIG_SETMASK, &saved_mask, NULL);
|
||||
|
||||
if (ret <= 0)
|
||||
if (ret > 0)
|
||||
{
|
||||
Debug (14, "IP=0x%lx not found\n", (long) ip);
|
||||
return -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 (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))
|
||||
|
|
Loading…
Add table
Reference in a new issue