diff options
author | Ian Lance Taylor <iant@golang.org> | 2019-12-13 20:04:47 +0000 |
---|---|---|
committer | Ian Lance Taylor <ian@gcc.gnu.org> | 2019-12-13 20:04:47 +0000 |
commit | c926fd82bbd336b317266d43b9fa67a83397b06b (patch) | |
tree | 2f686f2d4657aa570473986e7d0924794093c67b /libbacktrace/ChangeLog | |
parent | 510873f901ffa34391b4b744c939e6ac33d1e663 (diff) | |
download | gcc-c926fd82bbd336b317266d43b9fa67a83397b06b.zip gcc-c926fd82bbd336b317266d43b9fa67a83397b06b.tar.gz gcc-c926fd82bbd336b317266d43b9fa67a83397b06b.tar.bz2 |
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/ChangeLog | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/libbacktrace/ChangeLog b/libbacktrace/ChangeLog index 7d91aad..b63d216 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. |