Add and use elfcomm.c/elfcomm.h.
[deliverable/binutils-gdb.git] / binutils / dwarf.h
index 88595ba286e127cd8fe6fafcfce0b26bd7e3d86c..e9de4638ac4edd91c93cb5f404b18a7a86e25440 100644 (file)
@@ -1,5 +1,5 @@
 /* dwarf.h - DWARF support header file
 /* dwarf.h - DWARF support header file
-   Copyright 2005, 2007, 2008
+   Copyright 2005, 2007, 2008, 2009, 2010
    Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
    Free Software Foundation, Inc.
 
    This file is part of GNU Binutils.
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
    Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
    MA 02110-1301, USA.  */
 
-#if __STDC_VERSION__ >= 199901L || (defined(__GNUC__) && __GNUC__ >= 2)
-/* We can't use any bfd types here since readelf may define BFD64 and
-   objdump may not.  */
-typedef unsigned long long dwarf_vma;
-typedef unsigned long long dwarf_size_type;
-#else
-typedef unsigned long dwarf_vma;
-typedef unsigned long dwarf_size_type;
-#endif
+typedef unsigned HOST_WIDEST_INT dwarf_vma;
+typedef unsigned HOST_WIDEST_INT dwarf_size_type;
 
 struct dwarf_section
 {
   /* A debug section has a different name when it's stored compressed
 
 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().  */
+     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 *uncompressed_name;
   const char *compressed_name;
-  const charname;
+  const char *name;
   unsigned char *start;
   dwarf_vma address;
   dwarf_size_type size;
   unsigned char *start;
   dwarf_vma address;
   dwarf_size_type size;
@@ -49,11 +42,12 @@ struct dwarf_section_display
 {
   struct dwarf_section section;
   int (*display) (struct dwarf_section *, void *);
 {
   struct dwarf_section section;
   int (*display) (struct dwarf_section *, void *);
+  int *enabled;
   unsigned int relocate : 1;
   unsigned int relocate : 1;
-  unsigned int eh_frame : 1;
 };
 
 };
 
-enum dwarf_section_display_enum {
+enum dwarf_section_display_enum
+{
   abbrev = 0,
   aranges,
   frame,
   abbrev = 0,
   aranges,
   frame,
@@ -70,6 +64,9 @@ enum dwarf_section_display_enum {
   static_vars,
   types,
   weaknames,
   static_vars,
   types,
   weaknames,
+  trace_info,
+  trace_abbrev,
+  trace_aranges,
   max
 };
 
   max
 };
 
@@ -80,6 +77,8 @@ extern struct dwarf_section_display debug_displays [];
 typedef struct
 {
   unsigned int   pointer_size;
 typedef struct
 {
   unsigned int   pointer_size;
+  unsigned int   offset_size;
+  int            dwarf_version;
   unsigned long  cu_offset;
   unsigned long         base_address;
   /* This is an array of offsets to the location list table.  */
   unsigned long  cu_offset;
   unsigned long         base_address;
   /* This is an array of offsets to the location list table.  */
@@ -87,23 +86,20 @@ typedef struct
   int          *have_frame_base;
   unsigned int   num_loc_offsets;
   unsigned int   max_loc_offsets;
   int          *have_frame_base;
   unsigned int   num_loc_offsets;
   unsigned int   max_loc_offsets;
+  /* List of .debug_ranges offsets seen in this .debug_info.  */
   unsigned long *range_lists;
   unsigned int   num_range_lists;
   unsigned int   max_range_lists;
 }
 debug_info;
 
   unsigned long *range_lists;
   unsigned int   num_range_lists;
   unsigned int   max_range_lists;
 }
 debug_info;
 
-extern dwarf_vma (*byte_get) (unsigned char *, int);
-extern dwarf_vma byte_get_little_endian (unsigned char *, int);
-extern dwarf_vma byte_get_big_endian (unsigned char *, int);
-
 extern int eh_addr_size;
 
 extern int do_debug_info;
 extern int do_debug_abbrevs;
 extern int do_debug_lines;
 extern int eh_addr_size;
 
 extern int do_debug_info;
 extern int do_debug_abbrevs;
 extern int do_debug_lines;
-extern int do_debug_lines_decoded;
 extern int do_debug_pubnames;
 extern int do_debug_pubnames;
+extern int do_debug_pubtypes;
 extern int do_debug_aranges;
 extern int do_debug_ranges;
 extern int do_debug_frames;
 extern int do_debug_aranges;
 extern int do_debug_ranges;
 extern int do_debug_frames;
@@ -111,8 +107,14 @@ extern int do_debug_frames_interp;
 extern int do_debug_macinfo;
 extern int do_debug_str;
 extern int do_debug_loc;
 extern int do_debug_macinfo;
 extern int do_debug_str;
 extern int do_debug_loc;
+extern int do_trace_info;
+extern int do_trace_abbrevs;
+extern int do_trace_aranges;
+extern int do_wide;
 
 extern void init_dwarf_regnames (unsigned int);
 
 extern void init_dwarf_regnames (unsigned int);
+extern void init_dwarf_regnames_i386 (void);
+extern void init_dwarf_regnames_x86_64 (void);
 
 extern int load_debug_section (enum dwarf_section_display_enum,
                               void *);
 
 extern int load_debug_section (enum dwarf_section_display_enum,
                               void *);
@@ -120,9 +122,13 @@ extern void free_debug_section (enum dwarf_section_display_enum);
 
 extern void free_debug_memory (void);
 
 
 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);
+
 void *cmalloc (size_t, size_t);
 void *xcmalloc (size_t, size_t);
 void *xcrealloc (void *, size_t, size_t);
 
 void *cmalloc (size_t, size_t);
 void *xcmalloc (size_t, size_t);
 void *xcrealloc (void *, size_t, size_t);
 
-void error (const char *, ...) ATTRIBUTE_PRINTF_1;
-void warn (const char *, ...) ATTRIBUTE_PRINTF_1;
+unsigned long int read_leb128 (unsigned char *data,
+                              unsigned int *length_return, int sign);
This page took 0.024454 seconds and 4 git commands to generate.