Bug 564445 - Errors parsing .probes section in the presence of prelink
Summary: Errors parsing .probes section in the presence of prelink
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Enterprise Linux 5
Classification: Red Hat
Component: systemtap
Version: 5.5
Hardware: All
OS: Linux
low
medium
Target Milestone: rc
: ---
Assignee: Frank Ch. Eigler
QA Contact: qe-baseos-tools-bugs
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2010-02-12 19:02 UTC by Mark Wielaard
Modified: 2011-05-13 13:09 UTC (History)
9 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of: 564429
Environment:
Last Closed: 2010-03-30 09:06:24 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHBA-2010:0308 0 normal SHIPPED_LIVE systemtap bug fix and enhancement update 2010-03-29 14:36:19 UTC

Description Mark Wielaard 2010-02-12 19:02:12 UTC
+++ This bug was initially created as a clone of Bug #564429 +++

This is upsteam bug "Markers get a bad address in prelinked libraries"
http://sourceware.org/bugzilla/show_bug.cgi?id=11173
Fix is already in upstream git, but just missed the 1.1 release

If we don't make a new systemtap release then in addition of the above patch we will also need commit 87748e.

commit 08d1d520616557f6ff7dd023e260ad6577e9e0e8
Author: Mark Wielaard <mjw>
Date:   Mon Jan 18 09:13:30 2010 +0100

    PR11173 Markers get a bad address in prelinked libraries.
    
    Our literal_addr_to_sym_addr() function was just wrong. To compensate for
    raw addresses read from elf (either given by the user or through a mark
    transformation) we need to know what the elf_bias is (as returned by
    dwfl_module_getelf) before feeding them to any libdwfl functions.
    
    * tapsets.cxx (query_module_dwarf): Always add elf_bias to raw function or
      statement addresses before calling query_addr().
      (query_addr): Don't call literal_addr_to_sym_addr().
    * dwflpp.h (literal_addr_to_sym_addr): Removed.
    * dwflpp.cxx (literal_addr_to_sym_addr): Likewise.

commit 87748e2b87e574d3c83866ccd0d83678c3c68d93
Author: Mark Wielaard <mjw>
Date:   Tue Feb 2 13:47:19 2010 +0100

    Make sure cfa_ops are always retrieved through dwfl global address.
    
    dwflpp::translate_location() works on the dw address space, but
    get_cfa_ops() starts out with dwfl calls (only dwarf_cfi_addrframe()
    needs to be adjusted for bias).
    
    * dwflpp.cxx (translate_location): Pass pc plus module bias through to
      get_cfa_ops.
      (get_cfa_ops): Adjust for bias when calling dwarf_cfi_addrframe(),
      add frame start/end address when found if verbose logging.
    * testsuite/systemtap.exelib/lib.stp: Add $foo and $bar variables to
      process.function probes.
    * testsuite/systemtap.exelib/libmarkunamestack.stp: Likewise.
    * testsuite/systemtap.exelib/lib.tcl: Expect correct values for
      process.function probe variables.
    * testsuite/systemtap.exelib/libmarkunamestack.tcl: Likewise.

That last patch relies on an elfutils fix: https://bugzilla.redhat.com/show_bug.cgi?id=546295

Comment 1 Frank Ch. Eigler 2010-02-12 19:04:46 UTC
Patches in hand, needed for <sdt.h> instrumentation of user programs/libraries.
(No RHEL5 package is built with these, AFAIK.)

Comment 5 errata-xmlrpc 2010-03-30 09:06:24 UTC
An advisory has been issued which should help the problem
described in this bug report. This report is therefore being
closed with a resolution of ERRATA. For more information
on therefore solution and/or where to find the updated files,
please follow the link below. You may reopen this bug report
if the solution does not work for you.

http://rhn.redhat.com/errata/RHBA-2010-0308.html


Note You need to log in before you can comment on or make changes to this bug.