2002-12-14 Michal Ludvig * dwarf2cfi.c (pointer_encoding): Added new parameter. * dwarf2cfi.c, dwarf2read.c: Changed all warnings and error messages to contain BFD filename. Index: dwarf2cfi.c =================================================================== RCS file: /cvs/src/src/gdb/dwarf2cfi.c,v retrieving revision 1.20 diff -u -p -r1.20 dwarf2cfi.c --- dwarf2cfi.c 2 Nov 2002 14:59:10 -0000 1.20 +++ dwarf2cfi.c 11 Nov 2002 15:53:44 -0000 @@ -194,7 +194,7 @@ static LONGEST read_sleb128 (bfd *abfd, 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, @@ -457,7 +457,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 [%s]", + bfd_get_filename (abfd)); } } @@ -504,7 +505,8 @@ read_encoded_pointer (bfd *abfd, char ** default: internal_error (__FILE__, __LINE__, - "read_encoded_pointer: unknown pointer encoding"); + "read_encoded_pointer: unknown pointer encoding [%s]", + bfd_get_filename (abfd)); } return ret; @@ -515,12 +517,13 @@ read_encoded_pointer (bfd *abfd, char ** - 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 [%s]", + objfile->name); switch (encoding & 0x70) { @@ -532,7 +535,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 [%s]", + objfile->name); } return ret; } @@ -609,8 +613,9 @@ execute_cfa_program (struct objfile *obj 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 [%s]", + objfile->name); break; @@ -759,7 +764,8 @@ execute_cfa_program (struct objfile *obj break; default: - error ("dwarf cfi error: unknown cfa instruction %d.", insn); + error ("dwarf cfi error: unknown cfa instruction %d [%s]", insn, + objfile->name); } } } @@ -1022,25 +1028,25 @@ execute_stack_op (struct objfile *objfil case DW_OP_dup: if (stack_elt < 1) - internal_error (__FILE__, __LINE__, "execute_stack_op error"); + internal_error (__FILE__, __LINE__, "execute_stack_op error [%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 [%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 [%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 [%s]", objfile->name); result = stack[stack_elt - 2]; break; @@ -1049,7 +1055,7 @@ execute_stack_op (struct objfile *objfil 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 [%s]", objfile->name); t1 = stack[stack_elt - 1]; t2 = stack[stack_elt - 2]; t3 = stack[stack_elt - 3]; @@ -1067,7 +1073,7 @@ execute_stack_op (struct objfile *objfil 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 [%s]", objfile->name); result = stack[stack_elt]; switch (op) @@ -1077,7 +1083,7 @@ execute_stack_op (struct objfile *objfil 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 [%s]", objfile->name); result = read_memory_unsigned_integer (result, len); } break; @@ -1087,7 +1093,7 @@ execute_stack_op (struct objfile *objfil int len = *op_ptr++; if (len != 1 && len != 2 && len != 4 && len != 8) internal_error (__FILE__, __LINE__, - "execute_stack_op error"); + "execute_stack_op error [%s]", objfile->name); result = read_memory_unsigned_integer (result, len); } break; @@ -1127,7 +1133,7 @@ execute_stack_op (struct objfile *objfil /* 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 [%s]", objfile->name); second = stack[stack_elt]; first = stack[stack_elt + 1]; @@ -1185,7 +1191,7 @@ execute_stack_op (struct objfile *objfil result = (LONGEST) first != (LONGEST) second; break; default: - error ("execute_stack_op: Unknown DW_OP_ value"); + error ("execute_stack_op: Unknown DW_OP_ value [%s]", objfile->name); break; } } @@ -1198,7 +1204,7 @@ execute_stack_op (struct objfile *objfil case DW_OP_bra: if (--stack_elt < 0) - internal_error (__FILE__, __LINE__, "execute_stack_op error"); + internal_error (__FILE__, __LINE__, "execute_stack_op error [%s]", objfile->name); offset = read_2s (objfile->obfd, &op_ptr); if (stack[stack_elt] != 0) op_ptr += offset; @@ -1208,12 +1214,12 @@ execute_stack_op (struct objfile *objfil goto no_push; default: - internal_error (__FILE__, __LINE__, "execute_stack_op error"); + internal_error (__FILE__, __LINE__, "execute_stack_op error [%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 [%s]", objfile->name); stack[++stack_elt] = result; no_push:; } @@ -1221,7 +1227,7 @@ execute_stack_op (struct objfile *objfil /* 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 [%s]", objfile->name); return stack[stack_elt]; } @@ -1306,7 +1312,8 @@ update_context (struct context *context, 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: @@ -1323,7 +1330,8 @@ update_context (struct context *context, } 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 (); @@ -1533,13 +1541,14 @@ parse_frame_info (struct objfile *objfil cie = cie->next; } if (!cie) - error ("CFI: can't find CIE pointer"); + error ("CFI: can't find CIE pointer [%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; @@ -1549,7 +1558,8 @@ parse_frame_info (struct objfile *objfil init_loc += curr_section_vma + start - frame_buffer; break; default: - warning ("CFI: Unsupported pointer encoding\n"); + warning ("CFI: Unsupported pointer encoding [%s]", + bfd_get_filename (abfd)); } /* For relocatable objects we must add an offset telling @@ -1875,7 +1885,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: dwarf2read.c =================================================================== RCS file: /cvs/src/src/gdb/dwarf2read.c,v retrieving revision 1.75 diff -u -p -r1.75 dwarf2read.c --- dwarf2read.c 11 Nov 2002 00:55:34 -0000 1.75 +++ dwarf2read.c 11 Nov 2002 15:53:46 -0000 @@ -1228,22 +1228,24 @@ dwarf2_build_psymtabs_hard (struct objfi 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) [%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) [%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) [%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; } /* Complete the cu_header */ @@ -3634,7 +3636,8 @@ read_partial_die (struct partial_die_inf abbrev = dwarf2_lookup_abbrev (abbrev_number, cu_header); if (!abbrev) { - error ("Dwarf Error: Could not find abbrev number %d.", abbrev_number); + error ("Dwarf Error: Could not find abbrev number %d [%s]", abbrev_number, + bfd_get_filename (abfd)); } part_die->offset = info_ptr - dwarf_info_buffer; part_die->tag = abbrev->tag; @@ -3778,7 +3781,8 @@ read_full_die (struct die_info **diep, b abbrev = dwarf2_lookup_abbrev (abbrev_number, cu_header); if (!abbrev) { - error ("Dwarf Error: could not find abbrev number %d.", abbrev_number); + error ("Dwarf Error: could not find abbrev number %d [%s]", abbrev_number, + bfd_get_filename (abfd)); } die = dwarf_alloc_die (); die->offset = offset; @@ -3914,8 +3918,9 @@ read_attribute_value (struct attribute * 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 [%s]", + dwarf_form_name (form), + bfd_get_filename (abfd)); } return info_ptr; } @@ -3996,7 +4001,8 @@ read_address (bfd *abfd, char *buf, cons break; default: internal_error (__FILE__, __LINE__, - "read_address: bad switch, signed"); + "read_address: bad switch, signed [%s]", + bfd_get_filename (abfd)); } } else @@ -4014,7 +4020,8 @@ read_address (bfd *abfd, char *buf, cons break; default: internal_error (__FILE__, __LINE__, - "read_address: bad switch, unsigned"); + "read_address: bad switch, unsigned [%s]", + bfd_get_filename (abfd)); } } @@ -4129,7 +4136,8 @@ read_offset (bfd *abfd, char *buf, const break; default: internal_error (__FILE__, __LINE__, - "read_offset: bad switch"); + "read_offset: bad switch [%s]", + bfd_get_filename (abfd)); } return retval; @@ -4171,12 +4179,14 @@ read_indirect_string (bfd *abfd, char *b if (dwarf_str_buffer == NULL) { - error ("DW_FORM_strp used without .debug_str section"); + error ("DW_FORM_strp used without .debug_str section [%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 [%s]", + bfd_get_filename (abfd)); return NULL; } gdb_assert (HOST_CHAR_BIT == 8); @@ -5187,7 +5197,8 @@ die_type (struct die_info *die, struct o 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 [%s]", + ref, objfile->name); return NULL; } } @@ -5195,7 +5206,8 @@ die_type (struct die_info *die, struct o 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 [%s]", + objfile->name); } return type; } @@ -5219,7 +5231,8 @@ die_containing_type (struct die_info *di 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 [%s]", ref, + objfile->name); return NULL; } type = tag_type_to_type (type_die, objfile, cu_header); @@ -5228,7 +5241,8 @@ die_containing_type (struct die_info *di { 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 [%s]", + objfile->name); } return type; } @@ -5265,7 +5279,8 @@ tag_type_to_type (struct die_info *die, if (!die->type) { dump_die (die); - error ("Dwarf Error: Cannot find type of die."); + error ("Dwarf Error: Cannot find type of die [%s]", + objfile->name); } return die->type; } @@ -6437,8 +6452,8 @@ dwarf2_fundamental_type (struct objfile { 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 [%s]", + typeid, objfile->name); } /* Look for this particular type in the fundamental type vector. If