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:
parent
5715d912f4
commit
bd2798805a
1 changed files with 23 additions and 21 deletions
|
@ -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 */
|
||||||
|
|
Loading…
Reference in a new issue