1
0
Fork 0
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:
Doug Moore 2017-06-14 22:28:49 -05:00 committed by Dave Watson
parent be06809b5f
commit 4f14d9714f

View file

@ -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))