Bug 1315841
| Summary: | preserve debuginfo in libdyninstAPI_RT.so | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Frank Ch. Eigler <fche> | ||||
| Component: | dyninst | Assignee: | William Cohen <wcohen> | ||||
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | rawhide | CC: | fche, jistone, lberk, mcermak, mpetlan, orion, wcohen | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | dyninst-9.1.0-4 dyninst-9.1.0-4.fc24 | Doc Type: | Bug Fix | ||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | |||||||
| : | 1316956 (view as bug list) | Environment: | |||||
| Last Closed: | 2016-05-07 11:46:15 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Bug Depends On: | |||||||
| Bug Blocks: | 1316956 | ||||||
| Attachments: |
|
||||||
|
Description
Frank Ch. Eigler
2016-03-08 18:18:16 UTC
Is there a simple reproducer for this? What was the actual output message when it failed? 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
Created attachment 1134607 [details]
Missing DLLEXPORT of libdyninstAPI_RT_init_maxthreads
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.
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. Looks good here:
=======
# cat test.c
int main() { return 0; }
# gcc -g test.c
# rpm -q dyninst
dyninst-9.1.0-3.fc24.x86_64
# rpm -qa | grep dyninst
dyninst-9.1.0-3.fc24.x86_64
dyninst-devel-9.1.0-3.fc24.x86_64
# stap --dyninst -e 'probe process.function("main") { log("hit") }' -c ./a.out
--SERIOUS-- #0: Dyninst was unable to load the dyninst runtime library into the application. This may be caused by statically linked executables, or by having dyninst linked against a different version of libelf than it was built with.
--FATAL-- #68: Dyninst was unable to create the specified process
--FATAL-- #68: create process failed bootstrap
stapdyn: ERROR: Couldn't create the target process
WARNING: /usr/local/bin/stapdyn exited with status: 1
Pass 5: run failed. [man error::pass5]
#
#
# rpm -qa | grep dyninst
dyninst-9.1.0-4.fc25.x86_64
dyninst-devel-9.1.0-4.fc25.x86_64
#
# stap --dyninst -e 'probe process.function("main") { log("hit") }' -c ./a.out
hit
#
=======
Thanks for the fix!
dyninst-9.1.0-4.fc24 has been submitted as an update to Fedora 24. https://bodhi.fedoraproject.org/updates/FEDORA-2016-748f888241 dyninst-9.1.0-4.fc24 has been pushed to the Fedora 24 testing repository. If problems still persist, please make note of it in this bug report. See https://fedoraproject.org/wiki/QA:Updates_Testing for instructions on how to install test updates. You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2016-748f888241 dyninst-9.1.0-4.fc24 has been pushed to the Fedora 24 stable repository. If problems still persist, please make note of it in this bug report. |