[PATCH 00/10] Third step for Dwarf 3/4 support in DbgHelp

Eric Pouech eric.pouech at gmail.com
Sat Sep 11 03:58:40 CDT 2021


Dwarf3/4 adds a couple of structural modifications:
- either 32bit or 64bit internal offsets
- some attributes size have been changed across version
- some section headers evolution (one more field in line section header)
- GCC added some FORM extensions

This serie adds support for those, and some more code hardening.

This serie should finish covering the structural changes in dwarf3/4, and
the loading of dwarf4 modules should (shriek) be possible, even it lots of
new features of dwarf4 are not supported yet. Expect though lots of FIXME:s
and potential non functional stuff.

When this serie is committed, I'd appreciate feeback of running debugging
stuff with DBGHELP_DWARF_VERSION env variable set to 4.

As wine's modules are still compiled with dwarf2, and distros are moving to
dwarf5, the loadable dwarf4 modules are a scarse resource ;-)

A+

---

Eric Pouech (10):
      dbghelp{dwarf}: don't recompute location when said location is complex
      dbghelp{dwarf}: properly parse 32 vs bit 64bit entities
      dbghelp{dwarf}: correctly handle attributes according to 32bit or 64bit format
      dbghelp{dwarf}: Added support for FORM_loc_offset, FORM_sec_offset
      dbghelp{dwarf}: Added support for FORM_exprloc
      dbghelp{dwarf}: handle errors in dwarf2_fill_attr by returning a boolean
      dbghelp{dwarf}: added definitions of some GNU extenstions for FORM:s.
      dbghelp{dwarf}: Validate that a string is in the section boundary before using it
      dbghelp{dwarf}: Detect auto reference between a dwarf's DIE and its type
      dbghelp: Properly parse line number header for DWARF4 debug info


 dlls/dbghelp/dwarf.c | 148 +++++++++++++++++++++++++++++++++----------
 dlls/dbghelp/dwarf.h |   5 ++
 2 files changed, 118 insertions(+), 35 deletions(-)




More information about the wine-devel mailing list