aboutsummaryrefslogtreecommitdiff
path: root/binutils/dwarf.h
diff options
context:
space:
mode:
Diffstat (limited to 'binutils/dwarf.h')
-rw-r--r--binutils/dwarf.h98
1 files changed, 92 insertions, 6 deletions
diff --git a/binutils/dwarf.h b/binutils/dwarf.h
index 22ff496..344cc42 100644
--- a/binutils/dwarf.h
+++ b/binutils/dwarf.h
@@ -22,6 +22,92 @@
typedef unsigned HOST_WIDEST_INT dwarf_vma;
typedef unsigned HOST_WIDEST_INT dwarf_size_type;
+/* Structure found in the .debug_line section. */
+typedef struct
+{
+ unsigned char li_length [4];
+ unsigned char li_version [2];
+ unsigned char li_prologue_length [4];
+ unsigned char li_min_insn_length [1];
+ unsigned char li_default_is_stmt [1];
+ unsigned char li_line_base [1];
+ unsigned char li_line_range [1];
+ unsigned char li_opcode_base [1];
+}
+DWARF2_External_LineInfo;
+
+typedef struct
+{
+ bfd_vma li_length;
+ unsigned short li_version;
+ unsigned int 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;
+}
+DWARF2_Internal_LineInfo;
+
+/* Structure found in .debug_pubnames section. */
+typedef struct
+{
+ unsigned char pn_length [4];
+ unsigned char pn_version [2];
+ unsigned char pn_offset [4];
+ unsigned char pn_size [4];
+}
+DWARF2_External_PubNames;
+
+typedef struct
+{
+ bfd_vma pn_length;
+ unsigned short pn_version;
+ bfd_vma pn_offset;
+ bfd_vma pn_size;
+}
+DWARF2_Internal_PubNames;
+
+/* Structure found in .debug_info section. */
+typedef struct
+{
+ unsigned char cu_length [4];
+ unsigned char cu_version [2];
+ unsigned char cu_abbrev_offset [4];
+ unsigned char cu_pointer_size [1];
+}
+DWARF2_External_CompUnit;
+
+typedef struct
+{
+ bfd_vma cu_length;
+ unsigned short cu_version;
+ bfd_vma cu_abbrev_offset;
+ unsigned char cu_pointer_size;
+}
+DWARF2_Internal_CompUnit;
+
+typedef struct
+{
+ unsigned char ar_length [4];
+ unsigned char ar_version [2];
+ unsigned char ar_info_offset [4];
+ unsigned char ar_pointer_size [1];
+ unsigned char ar_segment_size [1];
+}
+DWARF2_External_ARange;
+
+typedef struct
+{
+ bfd_vma ar_length;
+ unsigned short ar_version;
+ bfd_vma ar_info_offset;
+ unsigned char ar_pointer_size;
+ unsigned char ar_segment_size;
+}
+DWARF2_Internal_ARange;
+
struct dwarf_section
{
/* A debug section has a different name when it's stored compressed
@@ -79,15 +165,15 @@ typedef struct
unsigned int pointer_size;
unsigned int offset_size;
int dwarf_version;
- unsigned long cu_offset;
- unsigned long base_address;
+ bfd_vma cu_offset;
+ bfd_vma base_address;
/* This is an array of offsets to the location list table. */
- unsigned long *loc_offsets;
+ bfd_vma *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;
+ bfd_vma *range_lists;
unsigned int num_range_lists;
unsigned int max_range_lists;
}
@@ -131,5 +217,5 @@ void *cmalloc (size_t, size_t);
void *xcmalloc (size_t, size_t);
void *xcrealloc (void *, size_t, size_t);
-unsigned long int read_leb128 (unsigned char *data,
- unsigned int *length_return, int sign);
+bfd_vma read_leb128 (unsigned char *data,
+ unsigned int *length_return, int sign);