]> git.ipfire.org Git - thirdparty/binutils-gdb.git/commitdiff
2003-02-03 Michal Ludvig <mludvig@suse.cz>
authorMichal Ludvig <mludvig@suse.cz>
Mon, 3 Feb 2003 14:40:09 +0000 (14:40 +0000)
committerMichal Ludvig <mludvig@suse.cz>
Mon, 3 Feb 2003 14:40:09 +0000 (14:40 +0000)
* dwarf2cfi.c (pointer_encoding): Added new parameter.
* dwarf2cfi.c, dwarf2read.c: Changed all warnings and
error messages to contain BFD filename.

gdb/ChangeLog
gdb/dwarf2cfi.c
gdb/dwarf2read.c

index 7575178ac342b0ded4133fa6b8f3577e4ce28026..9ecc3d343da21ec5bdb6898cdc56b885d36b9de0 100644 (file)
@@ -1,3 +1,9 @@
+2003-02-03  Michal Ludvig  <mludvig@suse.cz>
+
+       * dwarf2cfi.c (pointer_encoding): Added new parameter.
+       * dwarf2cfi.c, dwarf2read.c: Changed all warnings and
+       error messages to contain BFD filename. 
+
 2003-01-13  Andrew Cagney  <ac131313@redhat.com>
 
        * README (Graphical interface to GDB): Update URL.  Point at
index 18782b16dc87b0b83195064de0c891bc3507ea06..ca83a1dad316808b3f917261de2a2a3490744248 100644 (file)
@@ -228,7 +228,7 @@ static LONGEST read_sleb128 (bfd * abfd, char **p);
 static CORE_ADDR read_pointer (bfd * abfd, char **p);
 static CORE_ADDR read_encoded_pointer (bfd * abfd, char **p,
                                       unsigned char encoding);
-static enum ptr_encoding pointer_encoding (unsigned char encoding);
+static enum ptr_encoding pointer_encoding (unsigned char encoding, struct objfile *objfile);
 
 static LONGEST read_initial_length (bfd * abfd, char *buf, int *bytes_read);
 static ULONGEST read_length (bfd * abfd, char *buf, int *bytes_read,
@@ -500,7 +500,8 @@ read_pointer (bfd * abfd, char **p)
     case 8:
       return read_8u (abfd, p);
     default:
-      error ("dwarf cfi error: unsupported target address length.");
+      error ("dwarf cfi error: unsupported target address length [in module %s]", 
+                     bfd_get_filename (abfd));
     }
 }
 
@@ -547,7 +548,8 @@ read_encoded_pointer (bfd * abfd, char **p, unsigned char encoding)
 
     default:
       internal_error (__FILE__, __LINE__,
-                     "read_encoded_pointer: unknown pointer encoding");
+                     "read_encoded_pointer: unknown pointer encoding [in module %s]",
+                     bfd_get_filename (abfd));
     }
 
   return ret;
@@ -558,12 +560,13 @@ read_encoded_pointer (bfd * abfd, char **p, unsigned char encoding)
  * - encoding & 0x70 : type (absolute, relative, ...)
  * - encoding & 0x80 : indirect flag (DW_EH_PE_indirect == 0x80).  */
 enum ptr_encoding
-pointer_encoding (unsigned char encoding)
+pointer_encoding (unsigned char encoding, struct objfile *objfile)
 {
   int ret;
 
   if (encoding & DW_EH_PE_indirect)
-    warning ("CFI: Unsupported pointer encoding: DW_EH_PE_indirect");
+    warning ("CFI: Unsupported pointer encoding: DW_EH_PE_indirect [in module %s]",
+                   objfile->name);
 
   switch (encoding & 0x70)
     {
@@ -575,7 +578,8 @@ pointer_encoding (unsigned char encoding)
       ret = encoding & 0x70;
       break;
     default:
-      internal_error (__FILE__, __LINE__, "CFI: unknown pointer encoding");
+      internal_error (__FILE__, __LINE__, "CFI: unknown pointer encoding [in module %s]", 
+                     objfile->name);
     }
   return ret;
 }
@@ -652,8 +656,9 @@ execute_cfa_program (struct objfile *objfile, char *insn_ptr, char *insn_end,
            fs->pc = read_encoded_pointer (objfile->obfd, &insn_ptr,
                                           fs->addr_encoding);
 
-           if (pointer_encoding (fs->addr_encoding) != PE_absptr)
-             warning ("CFI: DW_CFA_set_loc uses relative addressing");
+           if (pointer_encoding (fs->addr_encoding, objfile) != PE_absptr)
+             warning ("CFI: DW_CFA_set_loc uses relative addressing [in module %s]", 
+                             objfile->name);
 
            break;
 
@@ -802,7 +807,8 @@ execute_cfa_program (struct objfile *objfile, char *insn_ptr, char *insn_end,
            break;
 
          default:
-           error ("dwarf cfi error: unknown cfa instruction %d.", insn);
+           error ("dwarf cfi error: unknown cfa instruction %d [in module %s]", insn, 
+                           objfile->name);
          }
     }
 }
@@ -848,13 +854,13 @@ frame_state_for (struct context *context, struct frame_state *fs)
   gdb_assert (fde->cie_ptr != NULL);
 
   cie = fde->cie_ptr;
-  
+
   fs->code_align = cie->code_align;
   fs->data_align = cie->data_align;
   fs->retaddr_column = cie->ra;
   fs->addr_encoding = cie->addr_encoding;
   fs->objfile = cie->objfile;
-  
+
   execute_cfa_program (cie->objfile, cie->data,
                       cie->data + cie->data_length, context, fs);
   execute_cfa_program (cie->objfile, fde->data,
@@ -1065,25 +1071,25 @@ execute_stack_op (struct objfile *objfile,
 
        case DW_OP_dup:
          if (stack_elt < 1)
-           internal_error (__FILE__, __LINE__, "execute_stack_op error");
+           internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
          result = stack[stack_elt - 1];
          break;
 
        case DW_OP_drop:
          if (--stack_elt < 0)
-           internal_error (__FILE__, __LINE__, "execute_stack_op error");
+           internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
          goto no_push;
 
        case DW_OP_pick:
          offset = *op_ptr++;
          if (offset >= stack_elt - 1)
-           internal_error (__FILE__, __LINE__, "execute_stack_op error");
+           internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
          result = stack[stack_elt - 1 - offset];
          break;
 
        case DW_OP_over:
          if (stack_elt < 2)
-           internal_error (__FILE__, __LINE__, "execute_stack_op error");
+           internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
          result = stack[stack_elt - 2];
          break;
 
@@ -1092,7 +1098,7 @@ execute_stack_op (struct objfile *objfile,
            CORE_ADDR t1, t2, t3;
 
            if (stack_elt < 3)
-             internal_error (__FILE__, __LINE__, "execute_stack_op error");
+             internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
            t1 = stack[stack_elt - 1];
            t2 = stack[stack_elt - 2];
            t3 = stack[stack_elt - 3];
@@ -1110,7 +1116,7 @@ execute_stack_op (struct objfile *objfile,
        case DW_OP_plus_uconst:
          /* Unary operations.  */
          if (--stack_elt < 0)
-           internal_error (__FILE__, __LINE__, "execute_stack_op error");
+           internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
          result = stack[stack_elt];
 
          switch (op)
@@ -1120,7 +1126,7 @@ execute_stack_op (struct objfile *objfile,
                int len = TARGET_ADDR_BIT / TARGET_CHAR_BIT;
                if (len != 4 && len != 8)
                  internal_error (__FILE__, __LINE__,
-                                 "execute_stack_op error");
+                                 "execute_stack_op error [in module %s]", objfile->name);
                result = read_memory_unsigned_integer (result, len);
              }
              break;
@@ -1128,9 +1134,9 @@ execute_stack_op (struct objfile *objfile,
            case DW_OP_deref_size:
              {
                int len = *op_ptr++;
-               if (len != 1 && len != 2 && len != 4 && len !=8)
+               if (len != 1 && len != 2 && len != 4 && len != 8)
                  internal_error (__FILE__, __LINE__,
-                                 "execute_stack_op error");
+                                 "execute_stack_op error [in module %s]", objfile->name);
                result = read_memory_unsigned_integer (result, len);
              }
              break;
@@ -1170,7 +1176,7 @@ execute_stack_op (struct objfile *objfile,
            /* Binary operations.  */
            CORE_ADDR first, second;
            if ((stack_elt -= 2) < 0)
-             internal_error (__FILE__, __LINE__, "execute_stack_op error");
+             internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
            second = stack[stack_elt];
            first = stack[stack_elt + 1];
 
@@ -1228,7 +1234,7 @@ execute_stack_op (struct objfile *objfile,
                result = (LONGEST) first != (LONGEST) second;
                break;
              default:
-               error ("execute_stack_op: Unknown DW_OP_ value");
+               error ("execute_stack_op: Unknown DW_OP_ value [in module %s]", objfile->name);
                break;
              }
          }
@@ -1241,7 +1247,7 @@ execute_stack_op (struct objfile *objfile,
 
        case DW_OP_bra:
          if (--stack_elt < 0)
-           internal_error (__FILE__, __LINE__, "execute_stack_op error");
+           internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
          offset = read_2s (objfile->obfd, &op_ptr);
          if (stack[stack_elt] != 0)
            op_ptr += offset;
@@ -1251,12 +1257,12 @@ execute_stack_op (struct objfile *objfile,
          goto no_push;
 
        default:
-         internal_error (__FILE__, __LINE__, "execute_stack_op error");
+         internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
        }
 
       /* Most things push a result value.  */
       if ((size_t) stack_elt >= sizeof (stack) / sizeof (*stack))
-       internal_error (__FILE__, __LINE__, "execute_stack_op error");
+       internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
       stack[++stack_elt] = result;
     no_push:;
     }
@@ -1264,7 +1270,7 @@ execute_stack_op (struct objfile *objfile,
   /* We were executing this program to get a value.  It should be
      at top of stack.  */
   if (--stack_elt < 0)
-    internal_error (__FILE__, __LINE__, "execute_stack_op error");
+    internal_error (__FILE__, __LINE__, "execute_stack_op error [in module %s]", objfile->name);
   return stack[stack_elt];
 }
 
@@ -1349,7 +1355,8 @@ update_context (struct context *context, struct frame_state *fs, int chain)
              orig_context->reg[fs->regs.reg[i].loc.reg].loc.addr;
            break;
          default:
-           internal_error (__FILE__, __LINE__, "bad switch");
+           internal_error (__FILE__, __LINE__, "bad switch 0x%02X", 
+                           orig_context->reg[fs->regs.reg[i].loc.reg].how);
          }
        break;
       case REG_SAVED_EXP:
@@ -1366,7 +1373,8 @@ update_context (struct context *context, struct frame_state *fs, int chain)
        }
        break;
       default:
-       internal_error (__FILE__, __LINE__, "bad switch");
+       internal_error (__FILE__, __LINE__, "bad switch 0x%02X",
+                       fs->regs.reg[i].how);
       }
   get_reg ((char *) &context->ra, context, fs->retaddr_column);
   unwind_tmp_obstack_free ();
@@ -1576,13 +1584,14 @@ parse_frame_info (struct objfile *objfile, file_ptr frame_offset,
                      cie = cie->next;
                    }
                  if (!cie)
-                   error ("CFI: can't find CIE pointer");
+                   error ("CFI: can't find CIE pointer [in module %s]", 
+                                   bfd_get_filename (abfd));
                }
 
              init_loc = read_encoded_pointer (abfd, &start,
                                               cie->addr_encoding);
 
-             switch (pointer_encoding (cie->addr_encoding))
+             switch (pointer_encoding (cie->addr_encoding, objfile))
                {
                case PE_absptr:
                  break;
@@ -1592,7 +1601,8 @@ parse_frame_info (struct objfile *objfile, file_ptr frame_offset,
                  init_loc += curr_section_vma + start - frame_buffer;
                  break;
                default:
-                 warning ("CFI: Unsupported pointer encoding\n");
+                 warning ("CFI: Unsupported pointer encoding [in module %s]",
+                                 bfd_get_filename (abfd));
                }
 
              /* For relocatable objects we must add an offset telling
@@ -1918,7 +1928,8 @@ cfi_get_saved_register (char *raw_buffer,
          break;
        default:
          internal_error (__FILE__, __LINE__,
-                         "cfi_get_saved_register: unknown register rule");
+                         "cfi_get_saved_register: unknown register rule 0x%02X",
+                         UNWIND_CONTEXT (frame)->reg[regnum].how);
        }
     }
 }
index 1788ee55494f24392e0c4d3b7bbcc8cf99f190b0..d8de09a5687b0725fb649d01655ae0e28e031192 100644 (file)
@@ -1196,22 +1196,24 @@ dwarf2_build_psymtabs_hard (struct objfile *objfile, int mainline)
 
       if (cu_header.version != 2)
        {
-         error ("Dwarf Error: wrong version in compilation unit header.");
+         error ("Dwarf Error: wrong version in compilation unit header (is %d, should be %d) [in module %s]", cu_header.version, 2, bfd_get_filename (abfd));
          return;
        }
       if (cu_header.abbrev_offset >= dwarf_abbrev_size)
        {
-         error ("Dwarf Error: bad offset (0x%lx) in compilation unit header (offset 0x%lx + 6).",
+         error ("Dwarf Error: bad offset (0x%lx) in compilation unit header (offset 0x%lx + 6) [in module %s]",
                 (long) cu_header.abbrev_offset,
-                (long) (beg_of_comp_unit - dwarf_info_buffer));
+                (long) (beg_of_comp_unit - dwarf_info_buffer),
+                bfd_get_filename (abfd));
          return;
        }
       if (beg_of_comp_unit + cu_header.length + cu_header.initial_length_size
          > dwarf_info_buffer + dwarf_info_size)
        {
-         error ("Dwarf Error: bad length (0x%lx) in compilation unit header (offset 0x%lx + 0).",
+         error ("Dwarf Error: bad length (0x%lx) in compilation unit header (offset 0x%lx + 0) [in module %s]",
                 (long) cu_header.length,
-                (long) (beg_of_comp_unit - dwarf_info_buffer));
+                (long) (beg_of_comp_unit - dwarf_info_buffer),
+                bfd_get_filename (abfd));
          return;
        }
       /* Read the abbrevs for this compilation unit into a table */
@@ -3551,7 +3553,8 @@ read_partial_die (struct partial_die_info *part_die, bfd *abfd,
   abbrev = dwarf2_lookup_abbrev (abbrev_number);
   if (!abbrev)
     {
-      error ("Dwarf Error: Could not find abbrev number %d.", abbrev_number);
+      error ("Dwarf Error: Could not find abbrev number %d [in module %s]", abbrev_number,
+                     bfd_get_filename (abfd));
     }
   part_die->offset = info_ptr - dwarf_info_buffer;
   part_die->tag = abbrev->tag;
@@ -3695,7 +3698,8 @@ read_full_die (struct die_info **diep, bfd *abfd, char *info_ptr,
   abbrev = dwarf2_lookup_abbrev (abbrev_number);
   if (!abbrev)
     {
-      error ("Dwarf Error: could not find abbrev number %d.", abbrev_number);
+      error ("Dwarf Error: could not find abbrev number %d [in module %s]", abbrev_number, 
+                     bfd_get_filename (abfd));
     }
   die = dwarf_alloc_die ();
   die->offset = offset;
@@ -3831,8 +3835,9 @@ read_attribute_value (struct attribute *attr, unsigned form,
       info_ptr = read_attribute_value (attr, form, abfd, info_ptr, cu_header);
       break;
     default:
-      error ("Dwarf Error: Cannot handle %s in DWARF reader.",
-            dwarf_form_name (form));
+      error ("Dwarf Error: Cannot handle %s in DWARF reader [in module %s]",
+            dwarf_form_name (form),
+            bfd_get_filename (abfd));
     }
   return info_ptr;
 }
@@ -3913,7 +3918,8 @@ read_address (bfd *abfd, char *buf, const struct comp_unit_head *cu_header,
          break;
        default:
          internal_error (__FILE__, __LINE__,
-                         "read_address: bad switch, signed");
+                         "read_address: bad switch, signed [in module %s]",
+                         bfd_get_filename (abfd));
        }
     }
   else
@@ -3931,7 +3937,8 @@ read_address (bfd *abfd, char *buf, const struct comp_unit_head *cu_header,
          break;
        default:
          internal_error (__FILE__, __LINE__,
-                         "read_address: bad switch, unsigned");
+                         "read_address: bad switch, unsigned [in module %s]",
+                         bfd_get_filename (abfd));
        }
     }
 
@@ -4046,7 +4053,8 @@ read_offset (bfd *abfd, char *buf, const struct comp_unit_head *cu_header,
       break;
     default:
       internal_error (__FILE__, __LINE__,
-                     "read_offset: bad switch");
+                     "read_offset: bad switch [in module %s]",
+                     bfd_get_filename (abfd));
     }
 
  return retval;
@@ -4088,12 +4096,14 @@ read_indirect_string (bfd *abfd, char *buf,
 
   if (dwarf_str_buffer == NULL)
     {
-      error ("DW_FORM_strp used without .debug_str section");
+      error ("DW_FORM_strp used without .debug_str section [in module %s]",
+                     bfd_get_filename (abfd));
       return NULL;
     }
   if (str_offset >= dwarf_str_size)
     {
-      error ("DW_FORM_strp pointing outside of .debug_str section");
+      error ("DW_FORM_strp pointing outside of .debug_str section [in module %s]",
+                     bfd_get_filename (abfd));
       return NULL;
     }
   gdb_assert (HOST_CHAR_BIT == 8);
@@ -5091,7 +5101,8 @@ die_type (struct die_info *die, struct objfile *objfile,
       type_die = follow_die_ref (ref);
       if (!type_die)
        {
-         error ("Dwarf Error: Cannot find referent at offset %d.", ref);
+         error ("Dwarf Error: Cannot find referent at offset %d [in module %s]", 
+                         ref, objfile->name);
          return NULL;
        }
     }
@@ -5099,7 +5110,8 @@ die_type (struct die_info *die, struct objfile *objfile,
   if (!type)
     {
       dump_die (type_die);
-      error ("Dwarf Error: Problem turning type die at offset into gdb type.");
+      error ("Dwarf Error: Problem turning type die at offset into gdb type [in module %s]",
+                     objfile->name);
     }
   return type;
 }
@@ -5123,7 +5135,8 @@ die_containing_type (struct die_info *die, struct objfile *objfile,
       type_die = follow_die_ref (ref);
       if (!type_die)
        {
-         error ("Dwarf Error: Cannot find referent at offset %d.", ref);
+         error ("Dwarf Error: Cannot find referent at offset %d [in module %s]", ref, 
+                         objfile->name);
          return NULL;
        }
       type = tag_type_to_type (type_die, objfile, cu_header);
@@ -5132,7 +5145,8 @@ die_containing_type (struct die_info *die, struct objfile *objfile,
     {
       if (type_die)
        dump_die (type_die);
-      error ("Dwarf Error: Problem turning containing type into gdb type.");
+      error ("Dwarf Error: Problem turning containing type into gdb type [in module %s]", 
+                     objfile->name);
     }
   return type;
 }
@@ -5169,7 +5183,8 @@ tag_type_to_type (struct die_info *die, struct objfile *objfile,
       if (!die->type)
        {
          dump_die (die);
-         error ("Dwarf Error: Cannot find type of die.");
+         error ("Dwarf Error: Cannot find type of die [in module %s]", 
+                         objfile->name);
        }
       return die->type;
     }
@@ -6329,8 +6344,8 @@ dwarf2_fundamental_type (struct objfile *objfile, int typeid)
 {
   if (typeid < 0 || typeid >= FT_NUM_MEMBERS)
     {
-      error ("Dwarf Error: internal error - invalid fundamental type id %d.",
-            typeid);
+      error ("Dwarf Error: internal error - invalid fundamental type id %d [in module %s]",
+            typeid, objfile->name);
     }
 
   /* Look for this particular type in the fundamental type vector.  If