[PATCH 0/9] Fourth step for Dwarf 3/4 support in dbghelp

Eric Pouech eric.pouech at gmail.com
Wed Sep 15 03:37:39 CDT 2021


Structure of dwarf info: an image, made of several compilation units, each
compilation unit contains several debug info entries (DIE in dwarf-ish)

We currently parse all of those in one pass. This needs to be reviewed for
Dwarf4:
- a DIE can reference another DIE in another compilation unit
  we currently support reference into the same CU only
  => we need to handle parsing of several CU at the same time
- a DIE can reference a DIE in another image (with GNU's extension in
  dwarf4, will become standard in dwarf5) => this is used for example to
  store all C++ basic debug info (like STL) in a dedicated image, that
  is shared across several modules (this case is done at system level)

This serie basically refactors the parsing mechanism to decouple the module
parsing from the compilation unit parsing.
It implements reference to DIE in another CU of same image.

Next serie will focus on reference into another image.


--

Eric Pouech (9):
      dbghelp/dwarf: separate cu handling from module handling
      dbghelp/dwarf: Moving the symt_cache from the unit context into the module context
      dbghelp/dwarf: Keep open and keep track of parse_context_t inside a module_context_t
      dbghelp: split in two phases the parsing of a dwarf compilation unit
      dbghelp/dwarf: Added ability to get to a DIE in a different CU
      dbghelp/dwarf: Properly supporting DW_FORM_ref_addr in type DIE lookup
      dbghelp/dwarf: Detect out of section sibling DIE information
      dbghelp/dwarf: add reference for a DIE to its CU
      programs/winedbg: show dwarf version(s) used for a module


 dlls/dbghelp/dwarf.c    | 288 ++++++++++++++++++++++++++--------------
 programs/winedbg/info.c |  13 +-
 2 files changed, 202 insertions(+), 99 deletions(-)




More information about the wine-devel mailing list