diff options
author | David Smith <dsmith@redhat.com> | 2009-06-18 13:10:21 -0500 |
---|---|---|
committer | David Smith <dsmith@redhat.com> | 2009-06-18 13:10:21 -0500 |
commit | 3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f (patch) | |
tree | 90094894e41fcbdeb10acf196f0840002c5b146f | |
parent | 24a5e9a6a87b2f7c8b7264ceb94c65a3a9550d47 (diff) | |
parent | d2309c6c3fb97cc0c8931b59e33fe18820b63c5d (diff) | |
download | systemtap-steved-3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f.tar.gz systemtap-steved-3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f.tar.xz systemtap-steved-3bb3a45a38238f2d1ff5cecfd2cf66b288232a1f.zip |
Merge commit 'origin/master' into pr7043
-rw-r--r-- | dwflpp.cxx | 11 | ||||
-rw-r--r-- | includes/sys/sdt.h | 8 |
2 files changed, 10 insertions, 9 deletions
@@ -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; diff --git a/includes/sys/sdt.h b/includes/sys/sdt.h index 10639d9c..0f86cc3b 100644 --- a/includes/sys/sdt.h +++ b/includes/sys/sdt.h @@ -257,10 +257,10 @@ do { \ syscall (STAP_SYSCALL, #probe, GETTID); \ } while (0) -#define STAP_PROBE1_(probe,label,parm1) \ -do { \ - STAP_PROBE_DATA(probe,STAP_GUARD,1); \ - syscall (STAP_SYSCALL, #probe, GETTID, parm1); \ +#define STAP_PROBE1_(probe,label,parm1) \ +do { \ + STAP_PROBE_DATA(probe,STAP_GUARD,1); \ + syscall (STAP_SYSCALL, #probe, GETTID, (size_t)parm1); \ } while (0) #define STAP_PROBE2_(probe,label,parm1,parm2) \ |