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(-)