dwarf: initial DWARFv5 support (#363)
authorWilliam Woodruff <william@trailofbits.com>
Thu, 27 May 2021 13:38:35 +0000 (09:38 -0400)
committerGitHub <noreply@github.com>
Thu, 27 May 2021 13:38:35 +0000 (06:38 -0700)
commit4384ad8928ad0167f8cc543056433080decef9cb
tree18b3ce78bbd78a3e47711e12527ca1089bfa102a
parente128bab01d6066547efed551e9d4944d5b2a5701
dwarf: initial DWARFv5 support (#363)

* dwarf: initial DWARFv5 support

* dwarf/structs: use Embed to select header layout

* dwarf/structs: DW_FORM_strx family

Not sure how best to handle 24-bit values yet.

* dwarf/structs: use IfThenElse

`If` alone wraps the else in a `Value`.

* dwarf/structs: DW_FORM_addrx family handling

* dwarf_expr: support DW_OP_addrx

Not complete, but gets readelf.py to the end of a single
binary.

* dwarf/constants: DW_UT_* constants

* dwarf/structs: fix some DW_FORMs

* elftools, test: plumbing for DWARFv5 sections

* dwarf/constants: fix typo

* dwarf/structs: re-add a comment that got squashed

* dwarf/structs: DWARFv5 table header scaffolding

* dwarf/constants: typo

* test: add a basic DWARFv5 test
elftools/dwarf/constants.py
elftools/dwarf/dwarf_expr.py
elftools/dwarf/dwarfinfo.py
elftools/dwarf/structs.py
elftools/elf/elffile.py
test/test_dwarf_v5.py [new file with mode: 0644]
test/test_refaddr_bitness.py
test/testfiles_for_unittests/dwarfv5_basic.elf [new file with mode: 0755]