summaryrefslogtreecommitdiffstats
path: root/dwflpp.cxx
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2009-06-18 13:10:21 -0500
committerDavid Smith <dsmith@redhat.com>2009-06-18 13:10:21 -0500
commit3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f (patch)
tree90094894e41fcbdeb10acf196f0840002c5b146f /dwflpp.cxx
parent24a5e9a6a87b2f7c8b7264ceb94c65a3a9550d47 (diff)
parentd2309c6c3fb97cc0c8931b59e33fe18820b63c5d (diff)
downloadsystemtap-steved-3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f.tar.gz
systemtap-steved-3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f.tar.xz
systemtap-steved-3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f.zip
Merge commit 'origin/master' into pr7043
Diffstat (limited to 'dwflpp.cxx')
-rw-r--r--dwflpp.cxx11
1 files changed, 6 insertions, 5 deletions
diff --git a/dwflpp.cxx b/dwflpp.cxx
index e01c6974..61627e16 100644
--- a/dwflpp.cxx
+++ b/dwflpp.cxx
@@ -2341,11 +2341,13 @@ dwflpp::get_blacklist_section(Dwarf_Addr addr)
Dwarf_Addr
-dwflpp::relocate_address(Dwarf_Addr addr,
+dwflpp::relocate_address(Dwarf_Addr dw_addr,
string& reloc_section,
string& blacklist_section)
{
- Dwarf_Addr reloc_addr = addr;
+ // PR10273
+ // libdw address, so adjust for bias gotten from dwfl_module_getdwarf
+ Dwarf_Addr reloc_addr = dw_addr + module_bias;
if (!module)
{
assert(module_name == TOK_KERNEL);
@@ -2364,14 +2366,13 @@ dwflpp::relocate_address(Dwarf_Addr addr,
if (reloc_section == "" && dwfl_module_relocations (module) == 1)
{
- blacklist_section = get_blacklist_section(addr);
+ blacklist_section = get_blacklist_section(dw_addr);
reloc_section = ".dynamic";
- reloc_addr += module_bias; // PR10273
}
}
else
{
- blacklist_section = get_blacklist_section(addr);
+ blacklist_section = get_blacklist_section(dw_addr);
reloc_section = ".absolute";
}
return reloc_addr;