Commit graph

31 commits

Author SHA1 Message Date
Nick Clifton
2e14fae29a * dwarf.c (print_dwarf_vma): Use mingw field type specified if necessary. 2008-01-29 16:36:33 +00:00
Nick Clifton
2d9472a2a1 * dwarf.c (print_dwarf_vma): New function. Display the value of a
dwarf_vma type at a specified precision.
  (display_debug_loc): Use dwarf_vma type for begin and end values.
  Use print_dwarf_vma to display their values.  Use byte_get_signed
  in order to correctly detect the -1 escape value.
  (display_debug_aranges): Likewise.
  (display_debug_ranges): Likewise.
2008-01-29 15:45:00 +00:00
Alan Modra
fe4eaaf48a update copyright date 2008-01-29 03:10:46 +00:00
Alan Modra
fefffff8d2 * dwarf.c (display_debug_loc): Correct test for base address
entry when 64-bit host dumping 32-bit object.
2008-01-29 02:55:48 +00:00
H.J. Lu
2dc4cec1f3 binutils/
2008-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	* dwarf.c: Include "elf/common.h".
	(eh_addr_size): Changed to int.
	(dwarf_regnames_i386): New.
	(dwarf_regnames_x86_64): Likewise.
	(dwarf_regnames): Likewise.
	(dwarf_regnames_count): Likewise.
	(init_dwarf_regnames): Likewise.
	(regname): Likewise.
	(frame_display_row): Properly support different address size.
	Call regname to get register name.
	(display_debug_frames): Call regname to get register name.
	Display DW_CFA_def_cfa_register as DW_CFA_def_cfa_register
	instead of DW_CFA_def_cfa_reg.

	* dwarf.h (init_dwarf_regnames): New.

	* objdump.c: Include "elf-bfd.h".
	(dump_dwarf): Call init_dwarf_regnames on ELF input.

	* readelf.c (guess_is_rela): Change argument to int.
	(parse_args): Remove the undocumented upper case options for
	-wX.
	(process_file_header): Call init_dwarf_regnames if
	do_dwarf_register is true.

gas/testsuite/

2008-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	* gas/cfi/cfi-alpha-1.d: Replace DW_CFA_def_cfa_reg with
	DW_CFA_def_cfa_register.
	* gas/cfi/cfi-alpha-3.d: Likewise.
	* gas/cfi/cfi-hppa-1.d: Likewise.
	* gas/cfi/cfi-i386.d: Likewise.
	* gas/cfi/cfi-m68k.d: Likewise.
	* gas/cfi/cfi-mips-1.d: Likewise.
	* gas/cfi/cfi-sh-1.d: Likewise.
	* gas/cfi/cfi-sparc-1.d: Likewise.
	* gas/cfi/cfi-sparc64-1.d: Likewise.
	* gas/cfi/cfi-x86_64.d: Likewise.

	* gas/cfi/cfi-common-1.d: Updated for i386/x86-64 register
	names.
	* gas/cfi/cfi-common-2.d: Likewise.
	* gas/cfi/cfi-common-5.d: Likewise.
	* gas/cfi/cfi-i386.d: Likewise.
	* gas/cfi/cfi-x86_64.d: Likewise.

ld/testsuite/

2008-01-28  H.J. Lu  <hongjiu.lu@intel.com>

	* ld-elf/eh1.d: Replace DW_CFA_def_cfa_reg with
	DW_CFA_def_cfa_register. Updated for i386/x86-64 register
	names.
	* ld-elf/eh2.d: Likewise.
	* ld-elf/eh3.d: Likewise.
	* ld-elf/eh4.d: Likewise.
	* ld-elf/eh5.d: Likewise.
2008-01-28 15:15:32 +00:00
Nick Clifton
6e3d6dc1ed Add mingw I64 support for printing long and long long values 2008-01-25 16:18:41 +00:00
Nick Clifton
cc86f28f31 (DEBUG_INFO_UNAVAILABLE): Value stored in num_debug_info_entries
when the .debug_info section could not be loaded/parsed.
        (process_debug_info): Display the length of the compilation unit
        in hex, so that it corresponds with the offsets that will follow.
        Tell the user if the length was 32-bit or 64-bit.
        If a DIE abbreviation could not be found, tell the user the offset
        of the DIE.
        (free_debug_memory): Do not attempt to free any entries in the
        debug_information array if num_debug_info_entries is set to
        DEBUG_INFO_UNAVAILABLE.
2008-01-14 14:53:47 +00:00
Nick Clifton
1febe64d96 * dwarf.c (process_debug_info): Include the CU offset and corrupt
version value when reporting unrecognised DWARF version numbers.
        (load_debug_info): Remember a failed attempt to load and parse the
        .debug_info section and do not repeat such attempts.
        (display_debug_lines): Check the return value from load_debug_info
        and return whilst displaying a warning message if the load failed.
        (display_debug_loc): Likewise.
        (display_debug_ranges): Likewise.
2008-01-14 12:26:57 +00:00
Nick Clifton
ec4d452564 * dwarf.c (read_and_display_attr_value): Prefix values that are
displayed in hexadecimal with 0x.
        For the DW_AT_import attribute display the abbreviation number and
        tag of the imported DIE.
        (process_debug_info): Warn about lengths that reserved by the
        DWARF3 specification.
        Provide more information when corrupted DIEs are detected.
        Warn if DIE corruption makes the sibling level negative.
2008-01-04 09:53:41 +00:00
Hans-Peter Nilsson
0eb090cbfc * dwarf.c (display_debug_loc): Cast section_end - start to long
for output format.
2007-11-21 17:50:41 +00:00
Nick Clifton
031cd65fb2 * dwarf.c (display_debug_loc): Issue a warning if there are bytes at the end
of the .debug_loc section which are not referenced by any attribute in the
  .debug_info section.
2007-11-21 11:58:00 +00:00
Nick Clifton
e2a0d921a7 * dwarf2.h: Mention the location of the DWARF3 spec on the web.
(DW_AT_stride_size): Rename to DW_AT_bit_stride.
  (DW_AT_stride): Rename to DW_AT_byte_stride.
* dwarf.c (process_extended_line_op): Add cases for HP extensions to the line ops.
  Mention if an unknown op code is in the user defined range.
  (decode_location_expression): Add cases for HP extensions, the DW_OP_GNU_uninit extension and the DW_OP_call_frame_cfa and DW_OP_bit_piece DWARF3 operators.
  (read_and_display_attr): Correct list of attributes which can reference a location list.
  (read_and_display_attr_value): Add cases for DWARF3 values and HP extensions.
  Correct list of attributes which can reference a location list.
  (get_AT_name): Add cases for DWARF3 values and HP and PGI extensions.
2007-11-16 15:36:21 +00:00
Nick Clifton
41e9264106 * dwarf.c (is_relocatable): Remove definition.
(display_debug_frames): Remove check in is_relocatable.
* dwarf.h (is_relocatable): Remove declaration.
* objdump.c (is_relocatable): New static definition.
* readelf.c (dump_relocations): Make the function void.
  (is_32bit_abs_reloc): Add support for x86, Arc, Arm, D10V, Dlx, OR32 and Score.
  (is_32bit_pcrel_reloc): Add support for x86 and Arm.
  (is_16bit_abs_reloc): Add support for D10V.
  (debug_apply_rela_addends): Rename to debug_apply_relocations.
  Add code to support rel relocations.
  (load_debug_section): Fix call to debug_apply_relocations.
  (get_file_header): Remove setting of is_relocatable.
* gas/cfi/cfi-common-6.d: Allow for possible relocation of the .debug.eh_frame section.
2007-10-31 16:09:53 +00:00
Nick Clifton
aca885677a * dwarf.c (process_debug_info): Check for corrupt lengths.
* readelf.c (get_reloc_type): New function.  Returns the reloc number extracted from the info field of a reloc.
  (get_reloc_symindex): New function.  Returns the symbol index
  (extracted from the info field of a reloc.
  (dump_relocations): Use the new functions.
  (slurp_ia64_unwind_table): Use the new functions.
  (slurp_hppa_unwind_table): Use the new functions.
  (dump_section_as_bytes): Use the new functions.
  (get_reloc_size): Delete function.
  (is_32bit_abs_reloc): New function.  Determines if a given reloc type is a 32-bit absolute relocation.
  (is_32bit_pcrel_reloc): New function.  Like is_32bit_abs_reloc but for pc-relative relocations.
  (is_64bit_abs_reloc): New function.  Like is_32bit_abs_reloc but for 64-bit absolute relocations.
  (is_16bit_abs_reloc): New function.  Like is_32bit_abs_reloc but for 32-bit absolute relocations.
  (debug_apply_rela_addends): Use the new functions.  Skip and warn about any unrecognised relocations.
2007-10-28 14:00:20 +00:00
Jim Blandy
750f03b79e * dwarf.c (process_debug_info): Line up section offsets of
attribute values with those of dies.
(read_and_display_attr): Reduce spacing here.
2007-10-10 19:44:30 +00:00
Jim Blandy
6523721c1f * dwarf.c (display_debug_lines): Print the offset of each line
number program header.
2007-10-10 19:43:43 +00:00
Nick Clifton
32866df75e Change sources over to using GPLv3 2007-07-05 16:54:46 +00:00
Nathan Sidwell
a87b0a599b * dwarf.c (decode_location_expression): Add DW_OP_form_tls_address. 2007-06-11 11:30:29 +00:00
Alan Modra
3db64b0092 bfd/
Many files: Include sysdep.h before bfd.h.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
binutils/
	* bucumm.h: Split off host dependencies to..
	* sysdep.h: ..here.
	Many files: Include sysdep.h.  Remove duplicate headers and reorder.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
ld/
	Many files: Include sysdep.h first.  Remove duplicate headers.
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
opcodes/
	* Makefile.am: Run "make dep-am".
	* Makefile.in: Regenerate.
	* ns32k-dis.c: Include sysdep.h first.
2007-04-26 14:47:00 +00:00
Daniel Jacobowitz
6eef13555f * dwarf.c (process_debug_info): Do not require DW_AT_frame_base for
DW_TAG_inlined_subroutine.
2007-04-09 14:36:59 +00:00
Nick Clifton
29006a4414 Add missing cast to (unsigned long) 2007-02-06 16:47:47 +00:00
Nick Clifton
4b78141aa2 PR gas/3800
* readelf.c: Include elf/h8.h twice.  The first time in order to get the reloc
  numbers, the second time in order to get the reloc decoder function.
  (dump_section): Tell the user if the section being displayed has unprocessed
  relocs associated with it.
  (get_reloc_size): New function - returns the size of a reloc.
  (debug_apply_rela_addends): Use get_reloc_size().
* dwarf.c (read_and_display_attr_value): Extend number of languages known for
  the DW_AT_language attribute.
  (process_debug_info): Display the attribute offset before decoding the
  attribute, in case there are problems.
2007-02-06 15:15:13 +00:00
Nathan Sidwell
460c89ff01 * dwarf.c (process_debug_info): Protect against bogus length and
abbrev offsets.
2007-01-31 08:42:45 +00:00
Andreas Schwab
d4bfc77bca * dwarf.c (display_debug_loc): Don't dereference loc_offsets when
there are no location lists.
	(display_debug_ranges): Similar for range_lists.
2006-10-10 10:45:45 +00:00
Nick Clifton
209c9a1352 PR binutils/2768
* dwarf.c (display_debug_aranges): When the address size is greater than 4
  display addresses and lengths as 16 hex digits, otherwise use 8 hex digits.
2006-08-08 09:43:10 +00:00
Nick Clifton
53b8873bef * dwarf.c (display_debug_frames): Catch a corrupt length field generating an
end of block address that is beyond the end of the section.
  When encountering a corrupt CIE pointer do not reset the start pointer as
    more data still has to be read.
  Do not warn about user defined call frame instructions.
2006-06-30 13:38:57 +00:00
H.J. Lu
b758e50f4c 2006-05-15 H.J. Lu <hongjiu.lu@intel.com>
* dwarf.c (display_debug_frames): Don't return on ZERO
	terminator.
2006-05-15 14:50:38 +00:00
Alan Modra
1617e5712a * dwarf.c (process_extended_line_op): Remove pointer_size param.
Use length instead to determine address size.
	(get_pointer_size_and_offset_of_comp_unit): Delete.
	(display_debug_lines): Adjust for above.
	(display_debug_aranges): Don't stop on finding two zeros.
	(display_debug_frames): For warning, print offset not pointer.
2006-03-10 13:30:10 +00:00
Jakub Jelinek
12eae2d34f * dwarf.c (frame_display_row, display_debug_frames): Handle
DW_CFA_val_offset, DW_CFA_val_offset_sf and DW_CFA_val_expression.
2006-03-03 18:29:40 +00:00
H.J. Lu
bfe2612a14 2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
* dwarf.c (fetch_indirect_string): Adjust for section address.
	(process_debug_info): Likewise.
	(display_debug_loc): Likewise.
	(display_debug_ranges): Likewise.

	* objdump.c (mach_o_dwarf_sections): New.
	(generic_dwarf_sections): Likewise.
	(check_mach_o_dwarf): Likewise.
	(dump_dwarf): Call check_mach_o_dwarf.
2005-09-30 14:57:52 +00:00
H.J. Lu
19e6b90ed8 2005-09-30 H.J. Lu <hongjiu.lu@intel.com>
* Makefile.am (CFILES): Add dwarf.c.
	(readelf_SOURCES): Likewise.
	* Makefile.in: Regenerated.

	* dwarf.c: New file.
	* dwarf.h. Likewise.

	* readelf.c: Include "dwarf.h" instead of "bfd.h".
	(do_debug_info): Remove the static definition.
	(do_debug_abbrevs): Likewise.
	(do_debug_lines): Likewise.
	(do_debug_pubnames): Likewise.
	(do_debug_aranges): Likewise.
	(do_debug_ranges): Likewise.
	(do_debug_frames): Likewise.
	(do_debug_frames_interp): Likewise.
	(do_debug_macinfo): Likewise.
	(do_debug_str): Likewise.
	(do_debug_loc): Likewise.
	(is_relocatable): Likewise.
	(have_frame_base): Likewise.
	(need_base_address): Likewise.
	(eh_addr_size): Likewise.
	(error): Likewise.
	(warn): Likewise.
	(cmalloc): Likewise.
	(xcmalloc): Likewise.
	(xcrealloc): Likewise.
	(dwarf_section): Removed.
	(byte_get_little_endian): Likewise.
	(byte_get_signed): Likewise.
	(byte_get_big_endian): Likewise.
	(read_leb128): Likewise.
	(State_Machine_Registers): Likewise.
	(state_machine_regs): Likewise.
	(reset_state_machine): Likewise.
	(process_extended_line_op): Likewise.
	(debug_str_section): Likewise.
	(fetch_indirect_string): Likewise.
	(debug_abbrev_section): Likewise.
	(abbrev_attr): Likewise.
	(first_abbrev): Likewise.
	(last_abbrev): Likewise.
	(free_abbrevs): Likewise.
	(add_abbrev_attr): Likewise.
	(process_abbrev_section): Likewise.
	(get_TAG_name): Likewise.
	(get_FORM_name): Likewise.
	(display_block): Likewise.
	(decode_location_expression): Likewise.
	(debug_info): Likewise.
	(debug_information): Likewise.
	(num_debug_info_entries): Likewise.
	(last_pointer_size): Likewise.
	(warned_about_missing_comp_units): Likewise.
	(read_and_display_attr_value): Likewise.
	(get_AT_name): Likewise.
	(read_and_display_attr): Likewise.
	(process_debug_info): Likewise.
	(get_pointer_size_and_offset_of_comp_unit): Likewise.
	(get_debug_info): Likewise.
	(display_debug_lines): Likewise.
	(display_debug_pubnames): Likewise.
	(display_debug_macinfo): Likewise.
	(display_debug_abbrev): Likewise.
	(display_debug_loc): Likewise.
	(display_debug_str): Likewise.
	(display_debug_aranges): Likewise.
	(display_debug_ranges): Likewise.
	(Frame_Chunk): Likewise.
	(DW_CFA_unreferenced): Likewise.
	(frame_need_space): Likewise.
	(frame_display_row): Likewise.
	(size_of_encoded_value): Likewise.
	(get_encoded_value): Likewise.
	(GET): Likewise.
	(LEB): Likewise.
	(SLEB): Likewise.
	(display_debug_frames): Likewise.
	(display_debug_not_supported): Likewise.
	(debug_displays): Likewise.
	(load_debug_section): Updated.
	(free_debug_section): Likewise.
	(display_debug_section): Likewise.
	(process_object): Call free_debug_memory to free debug memory.
2005-09-30 14:55:05 +00:00