From: Nick Clifton Date: Tue, 2 Oct 2001 09:12:11 +0000 (+0000) Subject: Detect and warna bout more 64bit DWARF debug sections X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=acb325ecee0165f154751927262c2b06ba6cca68;p=thirdparty%2Fbinutils-gdb.git Detect and warna bout more 64bit DWARF debug sections --- diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 55bfba2940d..12277573039 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,12 @@ +2001-10-02 Nick Clifton + + * readelf.c (display_debug_line, display_debug_pubnames, + display_debug_info, display_debug_frames): Detect and warn + about 64-bit format entries. + (display_debug_aranges): Reword 64-bit warning. + (debug_displays): Add .debug_pubtypes as a known, but not yet + supported, debug section. + 2001-10-01 Nick Clifton * readelf.c (display_debug_aranges): Warn about DWARF64 format diff --git a/binutils/readelf.c b/binutils/readelf.c index 4bfc1d77ec3..7befc88028d 100644 --- a/binutils/readelf.c +++ b/binutils/readelf.c @@ -5490,6 +5490,13 @@ display_debug_lines (section, start, file) /* Check the length of the block. */ info.li_length = BYTE_GET (external->li_length); + + if (info.li_length == 0xffffffff) + { + warn (_("64-bit DWARF line info is not supported yet.\n")); + break; + } + if (info.li_length + sizeof (external->li_length) > section->sh_size) { warn @@ -5718,6 +5725,12 @@ display_debug_pubnames (section, start, file) data = start + sizeof (* external); start += pubnames.pn_length + sizeof (external->pn_length); + if (pubnames.pn_length == 0xffffffff) + { + warn (_("64-bit DWARF pubnames are not supported yet.\n")); + break; + } + if (pubnames.pn_version != 2) { static int warned = 0; @@ -6818,6 +6831,12 @@ display_debug_info (section, start, file) compunit.cu_abbrev_offset = BYTE_GET (external->cu_abbrev_offset); compunit.cu_pointer_size = BYTE_GET (external->cu_pointer_size); + if (compunit.cu_length == 0xffffffff) + { + warn (_("64-bit DWARF debug info is not supported yet.\n")); + break; + } + tags = start + sizeof (* external); cu_offset = start - section_begin; start += compunit.cu_length + sizeof (external->cu_length); @@ -6947,7 +6966,7 @@ display_debug_aranges (section, start, file) if (arange.ar_length == 0xffffffff) { - warn (_("DWARF64 aranges not currently supported.\n")); + warn (_("64-bit DWARF aranges are not supported yet.\n")); break; } @@ -7162,6 +7181,12 @@ display_debug_frames (section, start, file) if (length == 0) return 1; + if (length == 0xffffffff) + { + warn (_("64-bit DWARF format frames are not supported yet.\n")); + break; + } + block_end = saved_start + length + 4; cie_id = byte_get (start, 4); start += 4; @@ -7270,7 +7295,7 @@ display_debug_frames (section, start, file) look_for = is_eh ? start - 4 - cie_id : section_start + cie_id; - for (cie=chunks; cie ; cie = cie->next) + for (cie = chunks; cie ; cie = cie->next) if (cie->chunk_start == look_for) break; @@ -7712,6 +7737,7 @@ debug_displays[] = { ".debug_frame", display_debug_frames, NULL }, { ".eh_frame", display_debug_frames, NULL }, { ".debug_macinfo", display_debug_not_supported, NULL }, + { ".debug_pubtypes", display_debug_not_supported, NULL }, { ".debug_str", display_debug_not_supported, NULL }, { ".debug_static_func", display_debug_not_supported, NULL }, { ".debug_static_vars", display_debug_not_supported, NULL },