diff options
-rw-r--r-- | addr2line.c | 40 |
1 files changed, 26 insertions, 14 deletions
@@ -1153,18 +1153,24 @@ resolve_strx(DebugInfoReader *reader, uint64_t idx) } static void debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoValue *v) { switch (form) { case DW_FORM_addr: - if (reader->address_size == 4) { - set_uint_value(v, read_uint32(&reader->p)); - } else if (reader->address_size == 8) { - set_uint_value(v, read_uint64(&reader->p)); - } else { - fprintf(stderr,"unknown address_size:%d", reader->address_size); - abort(); - } break; case DW_FORM_block2: v->size = read_uint16(&reader->p); @@ -1216,13 +1222,19 @@ debug_info_reader_read_value(DebugInfoReader *reader, uint64_t form, DebugInfoVa set_uint_value(v, read_uleb128(reader)); break; case DW_FORM_ref_addr: - if (reader->format == 4) { - set_uint_value(v, read_uint32(&reader->p)); - } else if (reader->format == 8) { - set_uint_value(v, read_uint64(&reader->p)); } else { - fprintf(stderr,"unknown format:%d", reader->format); - abort(); } break; case DW_FORM_ref1: |