]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
Detect and warna bout more 64bit DWARF debug sections
authorNick Clifton <nickc@redhat.com>
Tue, 2 Oct 2001 09:12:11 +0000 (09:12 +0000)
committerNick Clifton <nickc@redhat.com>
Tue, 2 Oct 2001 09:12:11 +0000 (09:12 +0000)
binutils/ChangeLog
binutils/readelf.c

index 55bfba2940d81427f9382d439e3dfb939d2419a0..1227757303925c28e2f7df118b35c19a4fd0ad96 100644 (file)
@@ -1,3 +1,12 @@
+2001-10-02  Nick Clifton  <nickc@cambridge.redhat.com>
+
+       * 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  <nickc@cambridge.redhat.com>
 
        * readelf.c (display_debug_aranges): Warn about DWARF64 format
index 4bfc1d77ec3abd48215a5337e1320ddd895af64e..7befc88028d8225ac2f3fd99b7b732e0a466f71b 100644 (file)
@@ -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 },