1
0
Fork 0
mirror of https://github.com/tobast/libunwind-eh_elf.git synced 2024-11-29 10:17:38 +01:00

Reformat os-freebsd.c.

This commit is contained in:
Konstantin Belousov 2010-04-03 23:29:28 +03:00
parent 5715d912f4
commit bd2798805a

View file

@ -31,32 +31,34 @@ WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */
#include "libunwind_i.h" #include "libunwind_i.h"
int PROTECTED int
tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip, tdep_get_elf_image (struct elf_image *ei, pid_t pid, unw_word_t ip,
unsigned long *segbase, unsigned long *mapoff) unsigned long *segbase, unsigned long *mapoff)
{ {
struct kinfo_vmentry *freep, *kve; struct kinfo_vmentry *freep, *kve;
int cnt, rc, i; int cnt, rc, i;
freep = kinfo_getvmmap(pid, &cnt); freep = kinfo_getvmmap(pid, &cnt);
if (freep == NULL) if (freep == NULL)
return (-1); return (-1);
for (i = 0; i < cnt; i++) { for (i = 0; i < cnt; i++)
kve = &freep[i]; {
if (ip < kve->kve_start || ip >= kve->kve_end) kve = &freep[i];
continue; if (ip < kve->kve_start || ip >= kve->kve_end)
if (kve->kve_type != KVME_TYPE_VNODE) { continue;
free(freep); if (kve->kve_type != KVME_TYPE_VNODE)
return (-1); {
} free(freep);
*segbase = kve->kve_start; return (-1);
*mapoff = kve->kve_offset;
rc = elf_map_image(ei, kve->kve_path);
free(freep);
return (rc);
} }
free(freep); *segbase = kve->kve_start;
return (-1); *mapoff = kve->kve_offset;
rc = elf_map_image(ei, kve->kve_path);
free(freep);
return (rc);
}
free(freep);
return (-1);
} }
#endif /* UNW_REMOTE_ONLY */ #endif /* UNW_REMOTE_ONLY */