/* dwarf.h - DWARF support header file
- Copyright (C) 2005-2016 Free Software Foundation, Inc.
+ Copyright (C) 2005-2019 Free Software Foundation, Inc.
This file is part of GNU Binutils.
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;
int li_line_base;
unsigned char li_line_range;
unsigned char li_opcode_base;
+ unsigned int li_offset_size;
}
DWARF2_Internal_LineInfo;
unsigned short cu_version;
dwarf_vma cu_abbrev_offset;
unsigned char cu_pointer_size;
+ enum dwarf_unit_type cu_unit_type;
}
DWARF2_Internal_CompUnit;
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,
debug_addr,
dwp_cu_index,
dwp_tu_index,
+ gnu_debuglink,
+ gnu_debugaltlink,
+ separate_debug_str,
max
};
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 [];
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;
}
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;
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;
extern int dwarf_check;
-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);
+extern void init_dwarf_regnames_by_elf_machine_code (unsigned int);
+extern void init_dwarf_regnames_by_bfd_arch_and_mach (enum bfd_architecture arch,
+ unsigned long mach);
-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);