diff --git a/src/arm/Gex_tables.c b/src/arm/Gex_tables.c index 2024c54a..9b8661af 100644 --- a/src/arm/Gex_tables.c +++ b/src/arm/Gex_tables.c @@ -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))