summaryrefslogtreecommitdiff
path: root/libbacktrace/ChangeLog
diff options
context:
space:
mode:
authorIan Lance Taylor <iant@golang.org>2019-12-13 20:04:47 +0000
committerIan Lance Taylor <ian@gcc.gnu.org>2019-12-13 20:04:47 +0000
commitc926fd82bbd336b317266d43b9fa67a83397b06b (patch)
tree2f686f2d4657aa570473986e7d0924794093c67b /libbacktrace/ChangeLog
parent510873f901ffa34391b4b744c939e6ac33d1e663 (diff)
downloadgcc-c926fd82bbd336b317266d43b9fa67a83397b06b.tar.gz
libbacktrace: add DWARF 5 support
* dwarf.c (struct attr): Add val field. (enum attr_val_encoding): Add ATTR_VAL_ADDDRESS_INDEX, ATTR_VAL_STRING_INDEX, ATTR_VAL_RNGLISTS_INDEX. (struct line_header): Add addrsize field. (struct line_header_format): Define. (struct unit): Add str_offsets_base, addr_base, and rnglists_base fields. (read_uint24): New static function. (read_attribute): Add implicit_val parameter. Replace dwarf_str and dwarf_str_size parameters with dwarf_sections parameter. Add support for new DWARF 5 forms. Change all callers. (resolve_string): New static function. (resolve_addr_index): Likewise. (read_abbrevs): Support DW_FORM_implicit_const. (struct pcrange): Add lowpc_is_addr_index, highpc_is_addr_Index, and ranges_is_index fields. (update_pcrange): Support DWARF 5 encodings. (add_high_low_range): New static function, split out of add_ranges. (add_ranges_from_ranges): Likewise. (add_ranges_from_rnglists): New static function. (add_ranges): Just call new helper functions. (find_address_ranges): Use resolve_string for strings, after reading all attributes. Handle new DWARF 5 attributes. (build_address_map): Support DWARF 5 compilation units. (read_v2_paths): New static function, split out of read_line_header. (read_lnct): New static function. (read_line_header_format_entries): Likewise. (read_line_header): Add ddata parameter. Support DWARF 5 line headers. Call new helper functions. Change all callers. (read_line_program): Use addrsize from line program header. Don't special case directory index 0 for DWARF 5. (read_referenced_name): Use resolve_string. (read_function_entry): Handle DWARF 5 encodings. Use resolve_string. * internal.h (enum dwarf_section): Add DEBUG_ADDR, DEBUG_STR_OFFSETS, DEBUG_LINE_STR, DEBUG_RNGLISTS. * elf.c (dwarf_section_names): Add new section names. * pecoff.c (dwarf_section_names): Likewise. * xcoff.c (xcoff_add): Clear dwarf_sections before setting fields. * configure.ac: Define HAVE_DWARF5 automake conditional. * Makefile.am (dwarf5_SOURCES): New variable if HAVE_DWARF5. (dwarf5_CFLAGS, dwarf5_LDADD): Likewise. (dwarf5_alloc_SOURCES, dwarf5_alloc_CFLAGS): Likewise. (dwarf5_alloc_LDADD): Likewise. (BUILDTESTS): Add dwarf5 tests if HAVE_DWARF5. (CLEANFILES, clean-local): Define. From-SVN: r279380
Diffstat (limited to 'libbacktrace/ChangeLog')
-rw-r--r--libbacktrace/ChangeLog53
1 files changed, 53 insertions, 0 deletions
diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog
index 7d91aadb818..b63d216c8c4 100644
--- a/libbacktrace/ChangeLog
+++ b/libbacktrace/ChangeLog
@@ -1,3 +1,56 @@
+2019-12-13 Ian Lance Taylor <iant@golang.org>
+
+ Add DWARF 5 support.
+ * dwarf.c (struct attr): Add val field.
+ (enum attr_val_encoding): Add ATTR_VAL_ADDDRESS_INDEX,
+ ATTR_VAL_STRING_INDEX, ATTR_VAL_RNGLISTS_INDEX.
+ (struct line_header): Add addrsize field.
+ (struct line_header_format): Define.
+ (struct unit): Add str_offsets_base, addr_base, and rnglists_base
+ fields.
+ (read_uint24): New static function.
+ (read_attribute): Add implicit_val parameter. Replace dwarf_str
+ and dwarf_str_size parameters with dwarf_sections parameter. Add
+ support for new DWARF 5 forms. Change all callers.
+ (resolve_string): New static function.
+ (resolve_addr_index): Likewise.
+ (read_abbrevs): Support DW_FORM_implicit_const.
+ (struct pcrange): Add lowpc_is_addr_index, highpc_is_addr_Index,
+ and ranges_is_index fields.
+ (update_pcrange): Support DWARF 5 encodings.
+ (add_high_low_range): New static function, split out of
+ add_ranges.
+ (add_ranges_from_ranges): Likewise.
+ (add_ranges_from_rnglists): New static function.
+ (add_ranges): Just call new helper functions.
+ (find_address_ranges): Use resolve_string for strings, after
+ reading all attributes. Handle new DWARF 5 attributes.
+ (build_address_map): Support DWARF 5 compilation units.
+ (read_v2_paths): New static function, split out of
+ read_line_header.
+ (read_lnct): New static function.
+ (read_line_header_format_entries): Likewise.
+ (read_line_header): Add ddata parameter. Support DWARF 5 line
+ headers. Call new helper functions. Change all callers.
+ (read_line_program): Use addrsize from line program header. Don't
+ special case directory index 0 for DWARF 5.
+ (read_referenced_name): Use resolve_string.
+ (read_function_entry): Handle DWARF 5 encodings. Use
+ resolve_string.
+ * internal.h (enum dwarf_section): Add DEBUG_ADDR,
+ DEBUG_STR_OFFSETS, DEBUG_LINE_STR, DEBUG_RNGLISTS.
+ * elf.c (dwarf_section_names): Add new section names.
+ * pecoff.c (dwarf_section_names): Likewise.
+ * xcoff.c (xcoff_add): Clear dwarf_sections before setting
+ fields.
+ * configure.ac: Define HAVE_DWARF5 automake conditional.
+ * Makefile.am (dwarf5_SOURCES): New variable if HAVE_DWARF5.
+ (dwarf5_CFLAGS, dwarf5_LDADD): Likewise.
+ (dwarf5_alloc_SOURCES, dwarf5_alloc_CFLAGS): Likewise.
+ (dwarf5_alloc_LDADD): Likewise.
+ (BUILDTESTS): Add dwarf5 tests if HAVE_DWARF5.
+ (CLEANFILES, clean-local): Define.
+
2019-12-08 Ian Lance Taylor <iant@golang.org>
* dwarf.c (struct pcrange): Define.