-
- Downloads
trace: include inlined-by functions in the backtrace
Fixes #255. The default OSv build has plenty of inlined functions. The tracing tool is using 'addr2line -Cfp' to resolve symbols. That mode of operation of addr2line yields one line per symbol and that line will only show the inlined function, even though the information about "logical" callers is also available. Example: $ addr2line -Cfp -e build/release/loader.elf 0x32963d lock_guard at (...) There is the '-i' switch we could use to also see code locations into which this function was inlined: $ addr2line -Cfpi -e build/release/loader.elf 0x32963d lock_guard at (...) (inlined by) lock_guard_for_with_lock at (...) (inlined by) mmu::vm_fault(unsigned long, exception_frame*) at (...) In this case, 'mmu::vm_fault' is much more interesting than lock_guard and thus we would like to show it in the backtrace. This change allows symbol resolvers to return multiple source addresses per raw address and changes the default implementation to return inlined-by functions by default. The new behavior can be suppressed with --no-inlined-by. Signed-off-by:Tomasz Grabiec <tgrabiec@cloudius-systems.com> Signed-off-by:
Pekka Enberg <penberg@cloudius-systems.com>
Showing
- scripts/loader.py 35 additions, 24 deletionsscripts/loader.py
- scripts/osv/debug.py 61 additions, 33 deletionsscripts/osv/debug.py
- scripts/osv/prof.py 2 additions, 1 deletionscripts/osv/prof.py
- scripts/osv/trace.py 11 additions, 7 deletionsscripts/osv/trace.py
- scripts/trace.py 11 additions, 9 deletionsscripts/trace.py
Loading
Please register or sign in to comment