Bug 1316956 - preserve debuginfo in libdyninstAPI_RT.so
Summary: preserve debuginfo in libdyninstAPI_RT.so
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Red Hat Developer Toolset
Classification: Red Hat
Component: dyninst
Version: DTS 4.1 RHEL 7
Hardware: Unspecified
OS: Linux
unspecified
medium
Target Milestone: beta1
: 4.1
Assignee: Josh Stone
QA Contact: Martin Cermak
URL:
Whiteboard:
Depends On: 1315841
Blocks:
TreeView+ depends on / blocked
 
Reported: 2016-03-11 14:20 UTC by Martin Cermak
Modified: 2016-05-31 08:42 UTC (History)
8 users (show)

Fixed In Version: devtoolset-4.1-dyninst-9.10-3
Doc Type: Bug Fix
Doc Text:
Clone Of: 1315841
Environment:
Last Closed: 2016-05-31 08:42:47 UTC
Target Upstream Version:
Embargoed:


Attachments (Terms of Use)


Links
System ID Private Priority Status Summary Last Updated
Red Hat Product Errata RHEA-2016:1146 0 normal SHIPPED_LIVE devtoolset-4-dyninst bug fix and enhancement update 2016-05-31 12:37:47 UTC

Description Martin Cermak 2016-03-11 14:20:30 UTC
+++ This bug was initially created as a clone of Bug #1315841 +++

Without dyninst-debuginfo installed, the API_RT initialization code dies with "could not find necessary internal variable" ... type messages.  Let's investigate tweaking the build/package system to preserve API_RT.so debuginfo within that file (unstripped) to make this problem stop.

--- Additional comment from William Cohen on 2016-03-09 14:13:55 CET ---

Is there a simple reproducer for this?  What was the actual output message when it failed?

--- Additional comment from Michael Petlan on 2016-03-09 16:33:35 CET ---

From IRC:

1) remove dyninst-debuginfo
2) run one of the following:

2a) stap --dyninst -L 'process.function("main@*:*")' -c ./hello

2b) the /tools/dyninst/Sanity/smoke-test testcase

2c) some test from the dyninst-testsuite, for example test4_2

--- Additional comment from William Cohen on 2016-03-09 19:06 CET ---

This patch is currently untested.  However, it is likely that this will clear up that particular failure to load a variable.  The tip off is that there was a similar findVarsByAll("libdyninstAPI_RT_init_localPid", vars) earlier in the same function that did work.  Looking for the variable that worked it was found that that libdyninstAPI_RT_init_maxthreads wasn't being exported in dyninstRTEport.h.  There might be missing DLLEXPORTs. Will see after testing this patch.

--- Additional comment from William Cohen on 2016-03-10 21:01:58 CET ---

The patched version for dyninst has been built for f24 and rawhide.

Note that there is an issue with libdwarf (rbbz #1316695 - libdwarf not checking whether error is null before attempting to use it for dwarf_srcfiles) that will cause a segfault if the dyninst-debuginfo is installed on the machine.

Comment 2 Michael Petlan 2016-05-13 12:35:58 UTC
# rpmquery devtoolset-4-dyninst-debuginfo devtoolset-4-dyninst
package devtoolset-4-dyninst-debuginfo is not installed
devtoolset-4-dyninst-9.1.0-3.el7.x86_64

Dynamic instrumentation works under DTS without devtoolset-4-dyninst-debuginfo installed.

VERIFIED

Comment 4 errata-xmlrpc 2016-05-31 08:42:47 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHEA-2016:1146


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