Red Hat Bugzilla – Bug 1316956
preserve debuginfo in libdyninstAPI_RT.so
Last modified: 2016-05-31 04:42:47 EDT
+++ 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 ---
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.
# rpmquery devtoolset-4-dyninst-debuginfo devtoolset-4-dyninst
package devtoolset-4-dyninst-debuginfo is not installed
Dynamic instrumentation works under DTS without devtoolset-4-dyninst-debuginfo installed.
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.