binutils-gdb/binutils/dwarf.h

242 lines
6.5 KiB
C
Raw Normal View History

bfd/ * Makefile.am (BFD32_LIBS): Add compress.lo. (BFD32_LIBS_CFILES): Add compress.c. (BFD_H_FILES): Likewise. * Makefile.in: Regenerate. * bfd-in2.h: Regenerate. * config.in: Add HAVE_ZLIB_H * configure.in: Add test for libz and zlib.h * configure: Regenerate. * dwarf2.c (read_section): New function. (read_indirect_string): Call new function read_section. (read_abbrevs): Likewise. (decode_line_info): Likewise. (read_debug_ranges): Likewise. (find_line): Call new function read_section when just one .zdebug_info section is found, otherwise read and compress multiple sections. (_bfd_dwarf2_cleanup_debug_info): Free sec_info_ptr. * elf.c (_bfd_elf_make_section_from_shdr): Add zdebug prefix. (special_sections_z): New struct. (special_sections): Refer to special_sections_z. * elfxx-mips.c (_bfd_mips_elf_section_from_shdr): Recognize sections named .zdebug_*. (_bfd_mips_elf_fake_sections): Likewise. * compress.c: New file. (bfd_uncompress_section_contents): New function. bfd/doc/ * Makefile.am (BFD_H_DEP): Add ../compress.c. * Makefile.in: Regenerate. binutils/ * config.in: Add HAVE_ZLIB_H * configure.in: Add test for libz and zlib.h * configure: Regenerate. * dwarf.c (debug_displays): Add .zdebug_* strings. * dwarf.h (struct dwarf_section): Add fields uncompressed_namd and compressed_name. * objdump.c (load_debug_section): Call bfd_uncompress_section_contents when loading a compressed section. (dump_dwarf_section): Recognize compressed section name. (mach_o_dwarf_sections): Rename as mach_o_uncompressed_dwarf_sections. (mach_o_compressed_dwarf_sections): New variable. (generic_dwarf_section): Rename as generic_uncompressed_dwarf_sections. (generic_compressed_dwarf_sections): New variable. (check_mach_o_dwarf): Save and restore mach_o_compressed_dwarf_sections. * readelf.c: Add #include for config.h and zlib.h (process_section_headers): Recognize compressed section name. (uncompress_section_contents): New function. (load_debug_section): Call uncompress_section_contents when loading a compressed section. (display_debug_section): Recognize compressed section name. binutils/testsuite: * binutils-all/objdump.exp: Add test for objdump -s on a file with a compressed debug section. Add test for objdump -W on a file that contains a compressed debug section. * binutils-all/readelf.exp: Call readelf_compressed_wa_test. (readelf_compressed_wa_test): New function. * binutils-all/dw2-compressed.S: New file. * binutils-all/objdump.W: New file. * binutils-all/objdump.s: New file. * binutils-all/readelf.wa: New file.
2008-07-10 03:32:23 +02:00
/* dwarf.h - DWARF support header file
Copyright (C) 2005-2017 Free Software Foundation, Inc.
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 16:55:05 +02:00
2007-07-05 18:54:46 +02:00
This file is part of GNU Binutils.
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 16:55:05 +02:00
2007-07-05 18:54:46 +02:00
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 3 of the License, or
(at your option) any later version.
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 16:55:05 +02:00
2007-07-05 18:54:46 +02:00
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
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 16:55:05 +02:00
2007-07-05 18:54:46 +02:00
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
MA 02110-1301, USA. */
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 16:55:05 +02:00
DWARF-5 basic functionality binutils/ 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf.c (fetch_indirect_line_string): New function. (abbrev_attr): New field implicit_const. (add_abbrev_attr): New parameter implicit_const. (process_abbrev_section): Support DW_FORM_implicit_const. (decode_location_expression): Support DW_OP_entry_value. (read_and_display_attr_value): Add parameter implicit_const. Support DW_FORM_line_strp and DW_FORM_implicit_const. (read_and_display_attr): Add parameter implicit_const. (process_debug_info): Support line_str and DWARF-5. (read_debug_line_header): Support DWARF-5. (display_formatted_table): New function. (display_debug_lines_raw): New parameter file. Support DWARF-5. (display_debug_lines_decoded): New parameter fileptr. Support DWARF-5. (display_debug_lines): Pass file parameter. (display_debug_macro): Update read_and_display_attr_value caller. (display_debug_abbrev): Support DW_FORM_implicit_const. (display_loclists_list): New function. (display_loc_list): Support .debug_loclists. (display_debug_ranges_list): New function from display_debug_ranges. (display_debug_rnglists_list): New function. (display_debug_ranges): Support .debug_rnglists. (debug_displays): Add .debug_line_str, .debug_loclists and .debug_rnglists. * dwarf.h: Include dwarf2.h (DWARF2_Internal_LineInfo): Add li_offset_size. (DWARF2_Internal_CompUnit): Add cu_unit_type. (enum dwarf_section_display_enum): Add line_str. * readelf.c (process_section_headers): Add rnglists and loclists.
2017-02-23 22:54:01 +01:00
#include "dwarf2.h" /* for enum dwarf_unit_type */
typedef unsigned HOST_WIDEST_INT dwarf_vma;
typedef HOST_WIDEST_INT dwarf_signed_vma;
typedef unsigned HOST_WIDEST_INT dwarf_size_type;
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 16:55:05 +02:00
/* Structure found in the .debug_line section. */
typedef struct
{
dwarf_vma li_length;
unsigned short li_version;
dwarf_vma li_prologue_length;
unsigned char li_min_insn_length;
unsigned char li_max_ops_per_insn;
unsigned char li_default_is_stmt;
int li_line_base;
unsigned char li_line_range;
unsigned char li_opcode_base;
DWARF-5 basic functionality binutils/ 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf.c (fetch_indirect_line_string): New function. (abbrev_attr): New field implicit_const. (add_abbrev_attr): New parameter implicit_const. (process_abbrev_section): Support DW_FORM_implicit_const. (decode_location_expression): Support DW_OP_entry_value. (read_and_display_attr_value): Add parameter implicit_const. Support DW_FORM_line_strp and DW_FORM_implicit_const. (read_and_display_attr): Add parameter implicit_const. (process_debug_info): Support line_str and DWARF-5. (read_debug_line_header): Support DWARF-5. (display_formatted_table): New function. (display_debug_lines_raw): New parameter file. Support DWARF-5. (display_debug_lines_decoded): New parameter fileptr. Support DWARF-5. (display_debug_lines): Pass file parameter. (display_debug_macro): Update read_and_display_attr_value caller. (display_debug_abbrev): Support DW_FORM_implicit_const. (display_loclists_list): New function. (display_loc_list): Support .debug_loclists. (display_debug_ranges_list): New function from display_debug_ranges. (display_debug_rnglists_list): New function. (display_debug_ranges): Support .debug_rnglists. (debug_displays): Add .debug_line_str, .debug_loclists and .debug_rnglists. * dwarf.h: Include dwarf2.h (DWARF2_Internal_LineInfo): Add li_offset_size. (DWARF2_Internal_CompUnit): Add cu_unit_type. (enum dwarf_section_display_enum): Add line_str. * readelf.c (process_section_headers): Add rnglists and loclists.
2017-02-23 22:54:01 +01:00
unsigned int li_offset_size;
}
DWARF2_Internal_LineInfo;
/* Structure found in .debug_pubnames section. */
typedef struct
{
dwarf_vma pn_length;
unsigned short pn_version;
dwarf_vma pn_offset;
dwarf_vma pn_size;
}
DWARF2_Internal_PubNames;
/* Structure found in .debug_info section. */
typedef struct
{
dwarf_vma cu_length;
unsigned short cu_version;
dwarf_vma cu_abbrev_offset;
unsigned char cu_pointer_size;
DWARF-5 basic functionality binutils/ 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf.c (fetch_indirect_line_string): New function. (abbrev_attr): New field implicit_const. (add_abbrev_attr): New parameter implicit_const. (process_abbrev_section): Support DW_FORM_implicit_const. (decode_location_expression): Support DW_OP_entry_value. (read_and_display_attr_value): Add parameter implicit_const. Support DW_FORM_line_strp and DW_FORM_implicit_const. (read_and_display_attr): Add parameter implicit_const. (process_debug_info): Support line_str and DWARF-5. (read_debug_line_header): Support DWARF-5. (display_formatted_table): New function. (display_debug_lines_raw): New parameter file. Support DWARF-5. (display_debug_lines_decoded): New parameter fileptr. Support DWARF-5. (display_debug_lines): Pass file parameter. (display_debug_macro): Update read_and_display_attr_value caller. (display_debug_abbrev): Support DW_FORM_implicit_const. (display_loclists_list): New function. (display_loc_list): Support .debug_loclists. (display_debug_ranges_list): New function from display_debug_ranges. (display_debug_rnglists_list): New function. (display_debug_ranges): Support .debug_rnglists. (debug_displays): Add .debug_line_str, .debug_loclists and .debug_rnglists. * dwarf.h: Include dwarf2.h (DWARF2_Internal_LineInfo): Add li_offset_size. (DWARF2_Internal_CompUnit): Add cu_unit_type. (enum dwarf_section_display_enum): Add line_str. * readelf.c (process_section_headers): Add rnglists and loclists.
2017-02-23 22:54:01 +01:00
enum dwarf_unit_type cu_unit_type;
}
DWARF2_Internal_CompUnit;
/* Structure found in .debug_aranges section. */
typedef struct
{
dwarf_vma ar_length;
unsigned short ar_version;
dwarf_vma ar_info_offset;
unsigned char ar_pointer_size;
unsigned char ar_segment_size;
}
DWARF2_Internal_ARange;
/* N.B. The order here must match the order in debug_displays. */
enum dwarf_section_display_enum
{
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 16:55:05 +02:00
abbrev = 0,
aranges,
frame,
info,
line,
pubnames,
gnu_pubnames,
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 16:55:05 +02:00
eh_frame,
macinfo,
macro,
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 16:55:05 +02:00
str,
DWARF-5 basic functionality binutils/ 2017-02-23 Jan Kratochvil <jan.kratochvil@redhat.com> * dwarf.c (fetch_indirect_line_string): New function. (abbrev_attr): New field implicit_const. (add_abbrev_attr): New parameter implicit_const. (process_abbrev_section): Support DW_FORM_implicit_const. (decode_location_expression): Support DW_OP_entry_value. (read_and_display_attr_value): Add parameter implicit_const. Support DW_FORM_line_strp and DW_FORM_implicit_const. (read_and_display_attr): Add parameter implicit_const. (process_debug_info): Support line_str and DWARF-5. (read_debug_line_header): Support DWARF-5. (display_formatted_table): New function. (display_debug_lines_raw): New parameter file. Support DWARF-5. (display_debug_lines_decoded): New parameter fileptr. Support DWARF-5. (display_debug_lines): Pass file parameter. (display_debug_macro): Update read_and_display_attr_value caller. (display_debug_abbrev): Support DW_FORM_implicit_const. (display_loclists_list): New function. (display_loc_list): Support .debug_loclists. (display_debug_ranges_list): New function from display_debug_ranges. (display_debug_rnglists_list): New function. (display_debug_ranges): Support .debug_rnglists. (debug_displays): Add .debug_line_str, .debug_loclists and .debug_rnglists. * dwarf.h: Include dwarf2.h (DWARF2_Internal_LineInfo): Add li_offset_size. (DWARF2_Internal_CompUnit): Add cu_unit_type. (enum dwarf_section_display_enum): Add line_str. * readelf.c (process_section_headers): Add rnglists and loclists.
2017-02-23 22:54:01 +01:00
line_str,
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 16:55:05 +02:00
loc,
loclists,
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 16:55:05 +02:00
pubtypes,
gnu_pubtypes,
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 16:55:05 +02:00
ranges,
rnglists,
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 16:55:05 +02:00
static_func,
static_vars,
types,
weaknames,
gdb_index,
debug_names,
trace_info,
trace_abbrev,
trace_aranges,
* doc/binutils.texi: Add --dwarf-check option. * dwarf.c (dwarf_check): New global flag. (fetch_indexed_string): New function. (fetch_indexed_value): New function. (get_FORM_name): Add DW_FORM_GNU_str_index and DW_FORM_GNU_addr_index. (decode_location_expression): Add DW_OP_GNU_addr_index. (read_and_display_attr_value): Add DW_FORM_GNU_str_index, DW_FORM_GNU_addr_index, DW_AT_GNU_addr_base, and DW_AT_GNU_ranges_base. (get_AT_name): Add new attributes for Fission. (process_debug_info): Load new debug sections for Fission. (load_debug_info): Check for .debug_info.dwo section. (display_loc_list, display_loc_list_dwo): New functions. (display_debug_loc): Move logic to above two functions. (display_debug_info): Choose abbrev section based on info section. (display_debug_types): Likewise. (display_trace_info): Likewise. (comp_addr_base): New function. (display_debug_addr): New function. (display_debug_str_offsets): New function. (display_debug_ranges): Allow missing range lists. Suppress diagnostics if dwarf_check not set. (debug_displays): Add column to select abbrev section. * dwarf.h (enum dwarf_section_display_enum): Add new debug sections for Fission. (struct dwarf_section): Add abbrev_sec field. (struct dwarf_section_display): New type. (debug_info): Add addr_base, ranges_base fields. (dwarf_check): New global variable. * objdump.c (usage): Add --dwarf-check option. (enum option_values): Add OPTION_DWARF_CHECK. (long_options): Add --dwarf-check. (main): Likewise. * readelf.c (OPTION_DWARF_CHECK): New macro. (options): Add --dwarf-check. (parse_args): Likewise. (process_section_headers): Use const_strneq instead of streq.
2012-05-11 20:18:34 +02:00
info_dwo,
abbrev_dwo,
types_dwo,
line_dwo,
loc_dwo,
macro_dwo,
macinfo_dwo,
str_dwo,
str_index,
str_index_dwo,
debug_addr,
dwp_cu_index,
dwp_tu_index,
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 16:55:05 +02:00
max
};
* doc/binutils.texi: Add --dwarf-check option. * dwarf.c (dwarf_check): New global flag. (fetch_indexed_string): New function. (fetch_indexed_value): New function. (get_FORM_name): Add DW_FORM_GNU_str_index and DW_FORM_GNU_addr_index. (decode_location_expression): Add DW_OP_GNU_addr_index. (read_and_display_attr_value): Add DW_FORM_GNU_str_index, DW_FORM_GNU_addr_index, DW_AT_GNU_addr_base, and DW_AT_GNU_ranges_base. (get_AT_name): Add new attributes for Fission. (process_debug_info): Load new debug sections for Fission. (load_debug_info): Check for .debug_info.dwo section. (display_loc_list, display_loc_list_dwo): New functions. (display_debug_loc): Move logic to above two functions. (display_debug_info): Choose abbrev section based on info section. (display_debug_types): Likewise. (display_trace_info): Likewise. (comp_addr_base): New function. (display_debug_addr): New function. (display_debug_str_offsets): New function. (display_debug_ranges): Allow missing range lists. Suppress diagnostics if dwarf_check not set. (debug_displays): Add column to select abbrev section. * dwarf.h (enum dwarf_section_display_enum): Add new debug sections for Fission. (struct dwarf_section): Add abbrev_sec field. (struct dwarf_section_display): New type. (debug_info): Add addr_base, ranges_base fields. (dwarf_check): New global variable. * objdump.c (usage): Add --dwarf-check option. (enum option_values): Add OPTION_DWARF_CHECK. (long_options): Add --dwarf-check. (main): Likewise. * readelf.c (OPTION_DWARF_CHECK): New macro. (options): Add --dwarf-check. (parse_args): Likewise. (process_section_headers): Use const_strneq instead of streq.
2012-05-11 20:18:34 +02:00
struct dwarf_section
{
/* A debug section has a different name when it's stored compressed
or not. COMPRESSED_NAME and UNCOMPRESSED_NAME are the two
possibilities. NAME is set to whichever one is used for this
input file, as determined by load_debug_section(). */
const char *uncompressed_name;
const char *compressed_name;
const char *name;
unsigned char *start;
dwarf_vma address;
dwarf_size_type size;
enum dwarf_section_display_enum abbrev_sec;
/* Used by clients to help them implement the reloc_at callback. */
void * reloc_info;
unsigned long num_relocs;
More fixes for memory access violations exposed by fuzzed binaries. PR binutils/17512 * dwarf.h (struct dwarf_section): Add user_data field. * dwarf.c (frame_need_space): Check for an over large register number. (display_debug_frames): Check the return value from frame_need_space. Check for a CFA expression that is so long the start address wraps around. (debug_displays): Initialise the user_data field. * objdump.c (load_specific_debug_section): Save the BFD section pointer in the user_data field of the dwarf_section structure. (free_debug_section): Update BFD section data when freeing section contents. * readelf.c (load_specific_debug_section): Initialise the user_data field. * archive.c (do_slurp_coff_armap): Add range checks to prevent running off the end of the string table. * compress.c (bfd_get_full_section_contents): Return a NULL pointer for zero sized sections. Do not attempt to copy a buffer onto itself. * elf-attrs.c (_bfd_elf_parse_attributes): Check for an empty header. Add range checks to avoid running off the end of the section. * elf.c (bfd_elf_get_str_section): Seek before allocating so that if the seek fails, no memory is allocated. (bfd_elf_string_from_elf_section): Do not allocate a string from a non string section. It only leads to trouble later on. (_bfd_elf_print_private_bfd_data): Check for there being too little external dynamic data. (bfd_section_from_shdr): Replace assertion with a failure mode. (bfd_section_from_shdr): When walking a loaded group section use the internal structure size, not the external size. Check for the group section being empty. * elf32-i386.c (elf_i386_rtype_to_howto): Replace assertion with a failure mode. * elfcode.h (elf_slurp_reloc_table): Likewise. * reloc.c (bfd_perform_relocation): Avoid seg-fault if the howto parameter is NULL.
2014-12-01 17:43:46 +01:00
/* A spare field for random use. */
void *user_data;
* doc/binutils.texi: Add --dwarf-check option. * dwarf.c (dwarf_check): New global flag. (fetch_indexed_string): New function. (fetch_indexed_value): New function. (get_FORM_name): Add DW_FORM_GNU_str_index and DW_FORM_GNU_addr_index. (decode_location_expression): Add DW_OP_GNU_addr_index. (read_and_display_attr_value): Add DW_FORM_GNU_str_index, DW_FORM_GNU_addr_index, DW_AT_GNU_addr_base, and DW_AT_GNU_ranges_base. (get_AT_name): Add new attributes for Fission. (process_debug_info): Load new debug sections for Fission. (load_debug_info): Check for .debug_info.dwo section. (display_loc_list, display_loc_list_dwo): New functions. (display_debug_loc): Move logic to above two functions. (display_debug_info): Choose abbrev section based on info section. (display_debug_types): Likewise. (display_trace_info): Likewise. (comp_addr_base): New function. (display_debug_addr): New function. (display_debug_str_offsets): New function. (display_debug_ranges): Allow missing range lists. Suppress diagnostics if dwarf_check not set. (debug_displays): Add column to select abbrev section. * dwarf.h (enum dwarf_section_display_enum): Add new debug sections for Fission. (struct dwarf_section): Add abbrev_sec field. (struct dwarf_section_display): New type. (debug_info): Add addr_base, ranges_base fields. (dwarf_check): New global variable. * objdump.c (usage): Add --dwarf-check option. (enum option_values): Add OPTION_DWARF_CHECK. (long_options): Add --dwarf-check. (main): Likewise. * readelf.c (OPTION_DWARF_CHECK): New macro. (options): Add --dwarf-check. (parse_args): Likewise. (process_section_headers): Use const_strneq instead of streq.
2012-05-11 20:18:34 +02:00
};
/* A structure containing the name of a debug section
and a pointer to a function that can decode it. */
struct dwarf_section_display
{
struct dwarf_section section;
int (*display) (struct dwarf_section *, void *);
int *enabled;
bfd_boolean relocate;
* doc/binutils.texi: Add --dwarf-check option. * dwarf.c (dwarf_check): New global flag. (fetch_indexed_string): New function. (fetch_indexed_value): New function. (get_FORM_name): Add DW_FORM_GNU_str_index and DW_FORM_GNU_addr_index. (decode_location_expression): Add DW_OP_GNU_addr_index. (read_and_display_attr_value): Add DW_FORM_GNU_str_index, DW_FORM_GNU_addr_index, DW_AT_GNU_addr_base, and DW_AT_GNU_ranges_base. (get_AT_name): Add new attributes for Fission. (process_debug_info): Load new debug sections for Fission. (load_debug_info): Check for .debug_info.dwo section. (display_loc_list, display_loc_list_dwo): New functions. (display_debug_loc): Move logic to above two functions. (display_debug_info): Choose abbrev section based on info section. (display_debug_types): Likewise. (display_trace_info): Likewise. (comp_addr_base): New function. (display_debug_addr): New function. (display_debug_str_offsets): New function. (display_debug_ranges): Allow missing range lists. Suppress diagnostics if dwarf_check not set. (debug_displays): Add column to select abbrev section. * dwarf.h (enum dwarf_section_display_enum): Add new debug sections for Fission. (struct dwarf_section): Add abbrev_sec field. (struct dwarf_section_display): New type. (debug_info): Add addr_base, ranges_base fields. (dwarf_check): New global variable. * objdump.c (usage): Add --dwarf-check option. (enum option_values): Add OPTION_DWARF_CHECK. (long_options): Add --dwarf-check. (main): Likewise. * readelf.c (OPTION_DWARF_CHECK): New macro. (options): Add --dwarf-check. (parse_args): Likewise. (process_section_headers): Use const_strneq instead of streq.
2012-05-11 20:18:34 +02:00
};
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 16:55:05 +02:00
extern struct dwarf_section_display debug_displays [];
/* This structure records the information that
we extract from the.debug_info section. */
typedef struct
{
unsigned int pointer_size;
unsigned int offset_size;
int dwarf_version;
dwarf_vma cu_offset;
dwarf_vma base_address;
* doc/binutils.texi: Add --dwarf-check option. * dwarf.c (dwarf_check): New global flag. (fetch_indexed_string): New function. (fetch_indexed_value): New function. (get_FORM_name): Add DW_FORM_GNU_str_index and DW_FORM_GNU_addr_index. (decode_location_expression): Add DW_OP_GNU_addr_index. (read_and_display_attr_value): Add DW_FORM_GNU_str_index, DW_FORM_GNU_addr_index, DW_AT_GNU_addr_base, and DW_AT_GNU_ranges_base. (get_AT_name): Add new attributes for Fission. (process_debug_info): Load new debug sections for Fission. (load_debug_info): Check for .debug_info.dwo section. (display_loc_list, display_loc_list_dwo): New functions. (display_debug_loc): Move logic to above two functions. (display_debug_info): Choose abbrev section based on info section. (display_debug_types): Likewise. (display_trace_info): Likewise. (comp_addr_base): New function. (display_debug_addr): New function. (display_debug_str_offsets): New function. (display_debug_ranges): Allow missing range lists. Suppress diagnostics if dwarf_check not set. (debug_displays): Add column to select abbrev section. * dwarf.h (enum dwarf_section_display_enum): Add new debug sections for Fission. (struct dwarf_section): Add abbrev_sec field. (struct dwarf_section_display): New type. (debug_info): Add addr_base, ranges_base fields. (dwarf_check): New global variable. * objdump.c (usage): Add --dwarf-check option. (enum option_values): Add OPTION_DWARF_CHECK. (long_options): Add --dwarf-check. (main): Likewise. * readelf.c (OPTION_DWARF_CHECK): New macro. (options): Add --dwarf-check. (parse_args): Likewise. (process_section_headers): Use const_strneq instead of streq.
2012-05-11 20:18:34 +02:00
/* This field is filled in when reading the attribute DW_AT_GNU_addr_base and
is used with the form DW_AT_GNU_FORM_addr_index. */
dwarf_vma addr_base;
/* This field is filled in when reading the attribute DW_AT_GNU_ranges_base and
is used when calculating ranges. */
dwarf_vma ranges_base;
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 16:55:05 +02:00
/* This is an array of offsets to the location list table. */
dwarf_vma * loc_offsets;
LVU: dump loclists with locviews When dumping location lists, also dump locview lists that may be interspersed with them, and bring view pairs next to the corresponding location list entries. This patch supports DW_AT_GNU_locviews as a separate attribute for DWARF4- loc_lists and split (dwo) loclists, as well as DWARF5 loclists. It also supports, in DWARF5 loclists, the proposed DW_LLE_GNU_view_pair loclist entry type proposed for DWARF6. The tests use 32-bit DWARF, even on 64-bit targets, resolving offsets to constants so as to reduce the risk that relocations be created for them, or that the offsets be rejected as nonconstants. The patch also adds an xfail to an unrelated test, namely dw5, so that no unexpected fails remain on nds32*-elf, one of the tested targets. Reviewed-by: Alan Modra <amodra@gmail.com> for include/ChangeLog * dwarf2.def (DW_AT_GNU_locviews): New. * dwarf2.h (enum dwarf_location_list_entry_type): Add DW_LLE_GNU_view_pair. (DW_LLE_view_pair): Define. for binutils/ChangeLog * dwarf.h (debug_info): Add loc_views and num_loc_views. * dwarf.c (vm1): New constant. (print_dwarf_view): New function. (read_and_display_attr_value): Support DW_AT_GNU_locviews. (process_debug_info): Keep num_loc_offsets and num_loc_views in sync. (display_view_pair_list): New function. (display_loc_list_dwo): Take vstart_ptr; update it. Dump location view pairs before the range they apply to, when a viewlist augments the loc list. (display_loc_list): Likewise. Check view numbers in range tests. (display_loclists_list): Likewise. Handle view pair entries, and warn on trailing ones. (loc_views): New variable. (loc_offsets_compar): Compare loc_views if loc_offsets are the same. (display_debug_loc): Check and sort loc_views too. Accept loc_view as expected_start. Skip if lists and views are the same. Dump locview list separately in order, and pass the locview list base to each list dump function. Warn and skip overlap and hole checking if we find loclists and locviews to not be adjacent. * testsuite/binutils-all/locview-1.s: New. * testsuite/binutils-all/readelf.locview-1: New. * testsuite/binutils-all/locview-2.s: New. * testsuite/binutils-all/readelf.locview-2: New. * testsuite/binutils-all/readelf.exp: Run new tests. Fix option spelling in pr18374 fail message. XFAIL dw5 test on nds32*-elf.
2017-09-22 22:05:51 +02:00
/* This is an array of offsets to the location view table. */
dwarf_vma * loc_views;
int * have_frame_base;
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 16:55:05 +02:00
unsigned int num_loc_offsets;
unsigned int max_loc_offsets;
LVU: dump loclists with locviews When dumping location lists, also dump locview lists that may be interspersed with them, and bring view pairs next to the corresponding location list entries. This patch supports DW_AT_GNU_locviews as a separate attribute for DWARF4- loc_lists and split (dwo) loclists, as well as DWARF5 loclists. It also supports, in DWARF5 loclists, the proposed DW_LLE_GNU_view_pair loclist entry type proposed for DWARF6. The tests use 32-bit DWARF, even on 64-bit targets, resolving offsets to constants so as to reduce the risk that relocations be created for them, or that the offsets be rejected as nonconstants. The patch also adds an xfail to an unrelated test, namely dw5, so that no unexpected fails remain on nds32*-elf, one of the tested targets. Reviewed-by: Alan Modra <amodra@gmail.com> for include/ChangeLog * dwarf2.def (DW_AT_GNU_locviews): New. * dwarf2.h (enum dwarf_location_list_entry_type): Add DW_LLE_GNU_view_pair. (DW_LLE_view_pair): Define. for binutils/ChangeLog * dwarf.h (debug_info): Add loc_views and num_loc_views. * dwarf.c (vm1): New constant. (print_dwarf_view): New function. (read_and_display_attr_value): Support DW_AT_GNU_locviews. (process_debug_info): Keep num_loc_offsets and num_loc_views in sync. (display_view_pair_list): New function. (display_loc_list_dwo): Take vstart_ptr; update it. Dump location view pairs before the range they apply to, when a viewlist augments the loc list. (display_loc_list): Likewise. Check view numbers in range tests. (display_loclists_list): Likewise. Handle view pair entries, and warn on trailing ones. (loc_views): New variable. (loc_offsets_compar): Compare loc_views if loc_offsets are the same. (display_debug_loc): Check and sort loc_views too. Accept loc_view as expected_start. Skip if lists and views are the same. Dump locview list separately in order, and pass the locview list base to each list dump function. Warn and skip overlap and hole checking if we find loclists and locviews to not be adjacent. * testsuite/binutils-all/locview-1.s: New. * testsuite/binutils-all/readelf.locview-1: New. * testsuite/binutils-all/locview-2.s: New. * testsuite/binutils-all/readelf.locview-2: New. * testsuite/binutils-all/readelf.exp: Run new tests. Fix option spelling in pr18374 fail message. XFAIL dw5 test on nds32*-elf.
2017-09-22 22:05:51 +02:00
unsigned int num_loc_views;
/* List of .debug_ranges offsets seen in this .debug_info. */
dwarf_vma * range_lists;
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 16:55:05 +02:00
unsigned int num_range_lists;
unsigned int max_range_lists;
}
debug_info;
extern unsigned int eh_addr_size;
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 16:55:05 +02:00
extern int do_debug_info;
extern int do_debug_abbrevs;
extern int do_debug_lines;
extern int do_debug_pubnames;
extern int do_debug_pubtypes;
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 16:55:05 +02:00
extern int do_debug_aranges;
extern int do_debug_ranges;
extern int do_debug_frames;
extern int do_debug_frames_interp;
extern int do_debug_macinfo;
extern int do_debug_str;
extern int do_debug_loc;
extern int do_gdb_index;
extern int do_trace_info;
extern int do_trace_abbrevs;
extern int do_trace_aranges;
extern int do_debug_addr;
extern int do_debug_cu_index;
extern int do_wide;
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 16:55:05 +02:00
extern int dwarf_cutoff_level;
extern unsigned long dwarf_start_die;
* doc/binutils.texi: Add --dwarf-check option. * dwarf.c (dwarf_check): New global flag. (fetch_indexed_string): New function. (fetch_indexed_value): New function. (get_FORM_name): Add DW_FORM_GNU_str_index and DW_FORM_GNU_addr_index. (decode_location_expression): Add DW_OP_GNU_addr_index. (read_and_display_attr_value): Add DW_FORM_GNU_str_index, DW_FORM_GNU_addr_index, DW_AT_GNU_addr_base, and DW_AT_GNU_ranges_base. (get_AT_name): Add new attributes for Fission. (process_debug_info): Load new debug sections for Fission. (load_debug_info): Check for .debug_info.dwo section. (display_loc_list, display_loc_list_dwo): New functions. (display_debug_loc): Move logic to above two functions. (display_debug_info): Choose abbrev section based on info section. (display_debug_types): Likewise. (display_trace_info): Likewise. (comp_addr_base): New function. (display_debug_addr): New function. (display_debug_str_offsets): New function. (display_debug_ranges): Allow missing range lists. Suppress diagnostics if dwarf_check not set. (debug_displays): Add column to select abbrev section. * dwarf.h (enum dwarf_section_display_enum): Add new debug sections for Fission. (struct dwarf_section): Add abbrev_sec field. (struct dwarf_section_display): New type. (debug_info): Add addr_base, ranges_base fields. (dwarf_check): New global variable. * objdump.c (usage): Add --dwarf-check option. (enum option_values): Add OPTION_DWARF_CHECK. (long_options): Add --dwarf-check. (main): Likewise. * readelf.c (OPTION_DWARF_CHECK): New macro. (options): Add --dwarf-check. (parse_args): Likewise. (process_section_headers): Use const_strneq instead of streq.
2012-05-11 20:18:34 +02:00
extern int dwarf_check;
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 16:15:32 +01:00
extern void init_dwarf_regnames (unsigned int);
extern void init_dwarf_regnames_i386 (void);
extern void init_dwarf_regnames_iamcu (void);
extern void init_dwarf_regnames_x86_64 (void);
extern void init_dwarf_regnames_aarch64 (void);
extern void init_dwarf_regnames_s390 (void);
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 16:15:32 +01:00
extern int load_debug_section (enum dwarf_section_display_enum, void *);
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 16:55:05 +02:00
extern void free_debug_section (enum dwarf_section_display_enum);
extern void free_debug_memory (void);
extern void dwarf_select_sections_by_names (const char *);
extern void dwarf_select_sections_by_letters (const char *);
extern void dwarf_select_sections_all (void);
extern unsigned int * find_cu_tu_set (void *, unsigned int);
extern void * cmalloc (size_t, size_t);
extern void * xcalloc2 (size_t, size_t);
extern void * xcmalloc (size_t, size_t);
extern void * xcrealloc (void *, size_t, size_t);
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 16:55:05 +02:00
extern dwarf_vma read_leb128 (unsigned char *, unsigned int *, bfd_boolean, const unsigned char * const);
/* A callback into the client. Returns TRUE if there is a
relocation against the given debug section at the given
offset. */
extern bfd_boolean reloc_at (struct dwarf_section *, dwarf_vma);