From ebd395452e7f81ece3d3877a04fbe26a324f6a3d Mon Sep 17 00:00:00 2001 From: rsc Date: Tue, 20 Apr 2004 05:43:05 +0000 Subject: cut dwarf a little slack. --- src/libmach/dwarfcfa.c | 4 ++++ src/libmach/dwarfopen.c | 6 +++--- 2 files changed, 7 insertions(+), 3 deletions(-) (limited to 'src/libmach') diff --git a/src/libmach/dwarfcfa.c b/src/libmach/dwarfcfa.c index de342cd7..d09edcb3 100644 --- a/src/libmach/dwarfcfa.c +++ b/src/libmach/dwarfcfa.c @@ -110,6 +110,10 @@ findfde(Dwarf *d, ulong pc, State *s, DwarfBuf *fde) ulong len, id, base, size; DwarfBuf b; + if(d->frame.data == nil){ + werrstr("no frame debugging information"); + return -1; + } b.d = d; b.p = d->frame.data; b.ep = b.p + d->frame.len; diff --git a/src/libmach/dwarfopen.c b/src/libmach/dwarfopen.c index 6122ae68..728944f4 100644 --- a/src/libmach/dwarfopen.c +++ b/src/libmach/dwarfopen.c @@ -58,13 +58,13 @@ dwarfopen(Elf *elf) d->elf = elf; if(loadsection(elf, ".debug_abbrev", &d->abbrev) < 0 || loadsection(elf, ".debug_aranges", &d->aranges) < 0 - || loadsection(elf, ".debug_frame", &d->frame) < 0 || loadsection(elf, ".debug_line", &d->line) < 0 || loadsection(elf, ".debug_pubnames", &d->pubnames) < 0 - || loadsection(elf, ".debug_ranges", &d->ranges) < 0 - || loadsection(elf, ".debug_str", &d->str) < 0 || loadsection(elf, ".debug_info", &d->info) < 0) goto err; + loadsection(elf, ".debug_frame", &d->frame); + loadsection(elf, ".debug_ranges", &d->ranges); + loadsection(elf, ".debug_str", &d->str); /* make this a table once there are more */ switch(d->elf->hdr.machine){ -- cgit v1.2.3