1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-17 21:47:37 +01:00

(dwarf_find_proc_info): Mask signal-delivery during dl_iterate_phdr().

(Logical change 1.203)
This commit is contained in:
mostang.com!davidm 2004-04-01 08:09:28 +00:00
parent 6d44be2c47
commit d3fad3af12

View file

@ -191,12 +191,18 @@ HIDDEN int
dwarf_find_proc_info (unw_addr_space_t as, unw_word_t ip, dwarf_find_proc_info (unw_addr_space_t as, unw_word_t ip,
unw_proc_info_t *pi, int need_unwind_info, void *arg) unw_proc_info_t *pi, int need_unwind_info, void *arg)
{ {
sigset_t saved_sigmask;
unw_dyn_info_t di; unw_dyn_info_t di;
int ret;
Debug (14, "looking for IP=0x%lx\n", (long) ip); Debug (14, "looking for IP=0x%lx\n", (long) ip);
di.u.rti.segbase = ip; /* this is cheap... */ di.u.rti.segbase = ip; /* this is cheap... */
if (dl_iterate_phdr (callback, &di) <= 0) sigprocmask (SIG_SETMASK, &unwi_full_sigmask, &saved_sigmask);
ret = dl_iterate_phdr (callback, &di);
sigprocmask (SIG_SETMASK, &saved_sigmask, NULL);
if (ret <= 0)
{ {
Debug (14, "IP=0x%lx not found\n", (long) ip); Debug (14, "IP=0x%lx not found\n", (long) ip);
return -UNW_ENOINFO; return -UNW_ENOINFO;