diff options
Diffstat (limited to 'tapsets.cxx')
-rw-r--r-- | tapsets.cxx | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/tapsets.cxx b/tapsets.cxx index abd46aee..fdbddd9e 100644 --- a/tapsets.cxx +++ b/tapsets.cxx @@ -3708,8 +3708,12 @@ sdt_query::record_semaphore (vector<derived_probe *> & results, unsigned start) string semaphore = probe_name + "_semaphore"; Dwarf_Addr addr = lookup_symbol_address(dw.module, semaphore.c_str()); if (addr) - for (unsigned i = start; i < results.size(); ++i) - sess.sdt_semaphore_addr.insert(make_pair(results[i], addr)); + { + if (dwfl_module_relocations (dw.module) > 0) + dwfl_module_relocate_address (dw.module, &addr); + for (unsigned i = start; i < results.size(); ++i) + sess.sdt_semaphore_addr.insert(make_pair(results[i], addr)); + } } |