summaryrefslogtreecommitdiffstats
path: root/dwflpp.h
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-06-24 14:20:08 +0200
committerMark Wielaard <mjw@redhat.com>2009-06-24 14:20:08 +0200
commit1f8592d1a615bef5bad1f255e761664e85d9e4f0 (patch)
tree05c01cbab8c8834bc356d3db70b8eeed904c2c9f /dwflpp.h
parent123ed3dad4423edf313f3218b3d63804b7edfc47 (diff)
downloadsystemtap-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.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/dwflpp.h b/dwflpp.h
index b31efdf8..8b503b33 100644
--- a/dwflpp.h
+++ b/dwflpp.h
@@ -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;