diff options
Diffstat (limited to 'binutils/dwarf.h')
-rw-r--r-- | binutils/dwarf.h | 98 |
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); |