]> sourceware.org Git - systemtap.git/commit
PR30407: Add DWARF5 support to print_ubacktrace_fileline()
authorMartin Cermak <mcermak@redhat.com>
Wed, 25 Oct 2023 09:59:12 +0000 (11:59 +0200)
committerMartin Cermak <mcermak@redhat.com>
Wed, 25 Oct 2023 09:59:12 +0000 (11:59 +0200)
commit367392917b68653abb16baa98cd1a4d02605f3de
tree7a1806677c2a3cc0751ec9109d2b7bc6538e1ade
parentaad01399ee495e990d79f652a24b99cf877e49df
PR30407: Add DWARF5 support to print_ubacktrace_fileline()

Add DWARF5 support to the tapsef function print_ubacktrace_fileline().

DWARF5 comes with a different line number program header compared to
DWARF4, see section 6.2.4 of the DWARF5 standard.  The DWARF5 specific
part of the header is now processed in a new _stp_filename_lookup_5().

This _stp_filename_lookup_5() needs to parse relatively big chunk of
information from DWARF (paths and file names).  Storing these within
local arrays may cause problems with the stack size.  For this reason
the storage was moved out to the context struct (dw_data).  For this
reason, various callers need to pass the pointer to the context struct
to their callees.  Finally _stp_filename_lookup_5() needs to see the
context struct at the KO compile time.  Since the context struct is
emitted to the stap_XXXXXX_src.i (within s.up->emit_common_header ())
after the main header file for Linux runtime.h (which includes sym.c),
the _stp_filename_lookup_5() was separated out into sym2.c for later
emission.

This update comes with a testcase systemtap.base/pr30407.exp.
12 files changed:
NEWS
runtime/common_probe_context.h
runtime/stack-arm.c
runtime/stack-ia64.c
runtime/stack-s390.c
runtime/stack.c
runtime/sym.c
runtime/sym.h
runtime/sym2.c [new file with mode: 0644]
runtime/unwind/unwind.h
testsuite/systemtap.base/pr30407.exp [new file with mode: 0644]
translate.cxx
This page took 0.027428 seconds and 5 git commands to generate.