[PATCH 00/15 v2] Inlines and scopes

Eric Pouech eric.pouech at gmail.com
Fri Oct 22 02:14:50 CDT 2021


The following series implements inline site and (local) scope contexts

V2:
- reorder patches to have full functionnalities earlier
- added the dwarf backend modifications

Alexandre, if you think this is too big for once, you can decide to split
between those blocks:
[01/08]: stack walk and symbol info for inline contexts (+ dwarf backend
         support)
[09/10]: (local) scope management functions
[11/15]: line info for inline context (+ dwarf backend support)

I also recommend using dwarf4 (instead of dwarf2) for using these features.

A+
---

Eric Pouech (15):
      dbghelp: introduce symt_inlinesite (SymTagInlineSite) to support inline sites
      dbghelp: introduce a couple of helpers to manage inline contexts
      dbghelp: added functions to add a range to an inline site
      dbghelp: implement StackWalkEx inline features
      dbghelp: implement SymFromInlineContext
      dbghelp/dwarf: add current block as a field in dwarf2_subprogram_t
      dbghelp/dwarf: generate proper inline function
      dbghelp/dwarf: now storing each subrange for an inlined function
      dbghelp: add local scope information in struct process
      dbghelp: implement the SymSetScope* functions
      dbghelp: renamed line_info pc_offset into address
      dbghelp: let symt_add_func_line() last parameter be an absolute address
      dbghelp: in SymGetLine* family, compute displacement relative to line_info's address
      dbghelp: added first implementations for SymGetLineFromInlineContext(W)
      dbghelp/dwarf: store line numbers and file info for inlined functions


 dlls/dbghelp/coff.c            |   7 +-
 dlls/dbghelp/dbghelp.c         |  71 +++++--
 dlls/dbghelp/dbghelp_private.h | 108 +++++++++-
 dlls/dbghelp/dwarf.c           | 205 ++++++++++++++-----
 dlls/dbghelp/module.c          |  10 +-
 dlls/dbghelp/msc.c             |   9 +-
 dlls/dbghelp/stabs.c           |   4 +-
 dlls/dbghelp/stack.c           |  34 +++-
 dlls/dbghelp/symbol.c          | 360 ++++++++++++++++++++++++++-------
 dlls/dbghelp/type.c            |  16 ++
 10 files changed, 654 insertions(+), 170 deletions(-)




More information about the wine-devel mailing list