read dwarf5 DW_FORM_addrx* and DW_FORM_strx* as generated by Clang14
DW_FORM_addrx* are offsets into .debug_addr containing addresses.
DW_FORM_strx* are offsets into .debug_str_offsets, which contain
offsets into .debug_str. Support for these also requires reading
DW_AT_addr_base and DW_AT_str_offsets_base before any other field
in the abbrev table entry, as those may use this form.
Looks like I never properly closed this. Apologies.
All Luboš have been committed and made it into valgrind 3.20.0
commit 026cda6c8111ef6 ff79bd5c6e083ab 50ccf3ded6
Author: Luboš Luňák <email address hidden>
Date: Tue Apr 26 13:53:14 2022 +0200
support DW_FORM_addrx3 and DW_FORM_strx3
Apparently these may get used after all with large enough binaries,
despite being somewhat tricky with regard to endianess.
commit 4bb0164e6b20673 76f085452a40137 f13436384c
Author: Luboš Luňák <email address hidden>
Date: Mon Apr 25 22:11:27 2022 +0200
implement support for missing DW_LLE_* and DW_RLE_* values
commit e95904b99c87606 eae1372ee4661e9 db03833f08
Author: Luboš Luňák <email address hidden>
Date: Tue Apr 26 08:35:16 2022 +0200
treat DW_TAG_ skeleton_ unit like DW_TAG_compile_unit
It's basically the same, except for being split-dwarf. Handling
it is required e.g. for reading line info.
commit d19bbdf1200685d dbb6976cf915fba 25f2097162
Author: Luboš Luňák <email address hidden>
Date: Tue Apr 19 12:20:16 2022 +0200
read dwarf5 DW_FORM_rnglistx and DW_FORM_loclistx
The .debug_ rnglists/ .debug_ loclists sections first have a list of offsets
and then a list of the actual data that those offsets point to.
commit 383f36462fdc25a 0e849391cf845e2 2703a95c08
Author: Luboš Luňák <email address hidden>
Date: Mon Apr 25 22:11:27 2022 +0200
avoid warning about missing DW_AT_*_base in skip_DIE()
Similarly to setup_cu_bases(), DW_FORM_addrx etc. may depend
on DW_AT_addr_base etc. that have not been read yet.
commit 61dfba4232d795c 00603c74e6d0573 f2d16641e2
Author: Luboš Luňák <email address hidden>
Date: Tue Apr 19 11:14:52 2022 +0200
read dwarf5 DW_FORM_addrx* and DW_FORM_strx* as generated by Clang14
DW_FORM_addrx* are offsets into .debug_addr containing addresses. offsets_ base before any other field
DW_FORM_strx* are offsets into .debug_str_offsets, which contain
offsets into .debug_str. Support for these also requires reading
DW_AT_addr_base and DW_AT_str_
in the abbrev table entry, as those may use this form.
commit 61ddbc1fc395c78 7192e569d8f2238 f713bdfd8e
Author: Luboš Luňák <email address hidden>
Date: Tue Apr 19 10:58:44 2022 +0200
read properly unit headers depending on dwarf5 unit_type
There may be additional fields that need to be skipped over, otherwise
further reading will interpret these incorrectly.