diff options
author | Mark Wielaard <mjw@redhat.com> | 2009-06-24 14:20:08 +0200 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2009-06-24 14:20:08 +0200 |
commit | 1f8592d1a615bef5bad1f255e761664e85d9e4f0 (patch) | |
tree | 05c01cbab8c8834bc356d3db70b8eeed904c2c9f /dwflpp.h | |
parent | 123ed3dad4423edf313f3218b3d63804b7edfc47 (diff) | |
download | systemtap-steved-1f8592d1a615bef5bad1f255e761664e85d9e4f0.tar.gz systemtap-steved-1f8592d1a615bef5bad1f255e761664e85d9e4f0.tar.xz systemtap-steved-1f8592d1a615bef5bad1f255e761664e85d9e4f0.zip |
PR10305 Mark probes fail on prelinked shared library.
Mark probes rely on literal statement addresses, these are based on the
on-disk module address space. Introduce helper function to turn such
addresses into symbol addresses as expected by libdwfl. Also properly
adjust for dw bias when such addresses are used in dw queries.
* dwflpp.h (dwflpp::literal_addr_to_sym_addr): New method.
* dwflpp.cxx (query_cu_containing_address): Don't "globalize" address.
(literal_addr_to_sym_addr): New method.
* tapsets.cxx (query_module_dwarf): Turn literal addresses into symbol
addresses.
(query_dwarf_func): Likewise and adjust for dw module bias.
Diffstat (limited to 'dwflpp.h')
-rw-r--r-- | dwflpp.h | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -291,6 +291,8 @@ struct dwflpp std::string& reloc_section, std::string& blacklist_section); + Dwarf_Addr literal_addr_to_sym_addr(Dwarf_Addr lit_addr); + private: Dwfl * dwfl; |