diff options
author | Mark Wielaard <mjw@redhat.com> | 2010-01-06 16:24:56 +0100 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2010-01-06 16:27:57 +0100 |
commit | d6b183074686940e8533b6fa377b098ec87a7f12 (patch) | |
tree | 284b6e7c1776b44c87f212823b74db2a4ccda9b2 /dwflpp.cxx | |
parent | 53d480f81d7c8232b2bfd5728baddcef50fe67ff (diff) | |
download | systemtap-steved-d6b183074686940e8533b6fa377b098ec87a7f12.tar.gz systemtap-steved-d6b183074686940e8533b6fa377b098ec87a7f12.tar.xz systemtap-steved-d6b183074686940e8533b6fa377b098ec87a7f12.zip |
Fix get_cfa_ops failure on shared libraries.
The fix for PR10923 (fafeaf) wasn't completely correct. All cfa lookups
need to be done through the relative pc (without bias) of the module we
are looking in.
* dwflpp.cxx (translate_location): Call get_cfa_ops with relative pc.
Diffstat (limited to 'dwflpp.cxx')
-rw-r--r-- | dwflpp.cxx | 6 |
1 files changed, 3 insertions, 3 deletions
@@ -1729,9 +1729,9 @@ dwflpp::translate_location(struct obstack *pool, e->tok); } - // get_cfa_ops works on the dw address space, pc is relative to current - // module, so add do need to add module_bias. - Dwarf_Op *cfa_ops = get_cfa_ops (pc + module_bias); + // pc is relative to current module, which is what get_cfa_ops + // and c_translate_location expects. + Dwarf_Op *cfa_ops = get_cfa_ops (pc); return c_translate_location (pool, &loc2c_error, this, &loc2c_emit_address, 1, 0 /* PR9768 */, |