X-Git-Url: http://drtracing.org/?a=blobdiff_plain;f=binutils%2Fdwarf.h;h=ca2f062efb752448cd5ed2dcfb987322a63faf31;hb=a712c56a9a2afe0ea5335bf9bf50a638d39b5484;hp=e679320fbbd524f165ca89c3fdcd700a38d25dd0;hpb=d1c4b12b9d48d9266b78e2c22d70aa25830b9f8f;p=deliverable%2Fbinutils-gdb.git diff --git a/binutils/dwarf.h b/binutils/dwarf.h index e679320fbb..ca2f062efb 100644 --- a/binutils/dwarf.h +++ b/binutils/dwarf.h @@ -1,5 +1,5 @@ /* dwarf.h - DWARF support header file - Copyright (C) 2005-2015 Free Software Foundation, Inc. + Copyright (C) 2005-2019 Free Software Foundation, Inc. This file is part of GNU Binutils. @@ -18,6 +18,8 @@ Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. */ +#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; @@ -34,6 +36,7 @@ typedef struct int li_line_base; unsigned char li_line_range; unsigned char li_opcode_base; + unsigned int li_offset_size; } DWARF2_Internal_LineInfo; @@ -54,6 +57,7 @@ typedef struct unsigned short cu_version; dwarf_vma cu_abbrev_offset; unsigned char cu_pointer_size; + enum dwarf_unit_type cu_unit_type; } DWARF2_Internal_CompUnit; @@ -83,15 +87,19 @@ enum dwarf_section_display_enum macinfo, macro, str, + line_str, loc, + loclists, pubtypes, gnu_pubtypes, ranges, + rnglists, static_func, static_vars, types, weaknames, gdb_index, + debug_names, trace_info, trace_abbrev, trace_aranges, @@ -108,6 +116,9 @@ enum dwarf_section_display_enum debug_addr, dwp_cu_index, dwp_tu_index, + gnu_debuglink, + gnu_debugaltlink, + separate_debug_str, max }; @@ -117,30 +128,31 @@ struct dwarf_section 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; - + const char * uncompressed_name; + const char * compressed_name; + const char * name; + /* If non-NULL then FILENAME is the name of the separate debug info + file containing the section. */ + const char * filename; + 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; - + void * reloc_info; + unsigned long num_relocs; /* A spare field for random use. */ - void *user_data; + void * user_data; }; /* 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; + struct dwarf_section section; + int (* display) (struct dwarf_section *, void *); + int * enabled; + bfd_boolean relocate; }; extern struct dwarf_section_display debug_displays []; @@ -162,9 +174,12 @@ typedef struct dwarf_vma ranges_base; /* This is an array of offsets to the location list table. */ dwarf_vma * loc_offsets; + /* This is an array of offsets to the location view table. */ + dwarf_vma * loc_views; int * have_frame_base; unsigned int num_loc_offsets; unsigned int max_loc_offsets; + unsigned int num_loc_views; /* List of .debug_ranges offsets seen in this .debug_info. */ dwarf_vma * range_lists; unsigned int num_range_lists; @@ -172,6 +187,15 @@ typedef struct } debug_info; +typedef struct separate_info +{ + void * handle; /* The pointer returned by open_debug_file(). */ + const char * filename; + struct separate_info * next; +} separate_info; + +extern separate_info * first_separate_info; + extern unsigned int eh_addr_size; extern int do_debug_info; @@ -193,6 +217,8 @@ extern int do_trace_aranges; extern int do_debug_addr; extern int do_debug_cu_index; extern int do_wide; +extern int do_debug_links; +extern int do_follow_links; extern int dwarf_cutoff_level; extern unsigned long dwarf_start_die; @@ -204,9 +230,14 @@ 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); +extern void init_dwarf_regnames_riscv (void); -extern int load_debug_section (enum dwarf_section_display_enum, void *); -extern void free_debug_section (enum dwarf_section_display_enum); +extern bfd_boolean load_debug_section (enum dwarf_section_display_enum, void *); +extern void free_debug_section (enum dwarf_section_display_enum); +extern bfd_boolean load_separate_debug_files (void *, const char *); +extern void close_debug_file (void *); +extern void * open_debug_file (const char *); extern void free_debug_memory (void); @@ -223,7 +254,7 @@ extern void * xcrealloc (void *, size_t, size_t); extern dwarf_vma read_leb128 (unsigned char *, unsigned int *, bfd_boolean, const unsigned char * const); -/* A callback into the client. Retuns TRUE if there is a +/* 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);