Bug 556944
| Summary: | semantic error: No cfa_ops supplied, but needed by DW_OP_call_frame_cfa | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Dave Malcolm <dmalcolm> | ||||||
| Component: | systemtap | Assignee: | Mark Wielaard <mjw> | ||||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | medium | Docs Contact: | |||||||
| Priority: | low | ||||||||
| Version: | 12 | CC: | dsmith, fche, jistone, mjw, roland, wcohen | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | All | ||||||||
| OS: | Linux | ||||||||
| Whiteboard: | |||||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2010-02-19 09:17:50 UTC | Type: | --- | ||||||
| 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: | 563528 | ||||||||
| Bug Blocks: | 546295 | ||||||||
| Attachments: |
|
||||||||
|
Description
Dave Malcolm
2010-01-19 21:38:09 UTC
Created attachment 385528 [details]
/usr/lib/libpython2.6.so.1.0 that's showing this
Created attachment 385530 [details]
.debug file
Replicated against:
python-2.6.2-2.fc12.i686
systemtap-1.1-1.fc12.i686
[mark@fedora32 ~]$ stap -e 'probe
process("/usr/lib/libpython2.6.so.1.0").function("PyObject_Malloc")
{printf("PyObject_Malloc(%i)\n", $nbytes);}'
semantic error: No cfa_ops supplied, but needed by DW_OP_call_frame_cfa:
identifier '$nbytes' at <input>:1:108
source: probe
process("/usr/lib/libpython2.6.so.1.0").function("PyObject_Malloc")
{printf("PyObject_Malloc(%i)\n", $nbytes);}
^
Pass 2: analysis failed. Try again with another '--vp 01' option.
Also fails against current systemtap git-trunk.
For the record, doesn't fail on x86_64. Fixed upstream:
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.
The patch in comment #5 relies on an elfutils fix for bug #563528 systemtap-1.1-2.fc13 and systemtap-1.1-2.fc12 have been pushed with the fix from comment #5. Which should fix this issue mostly. Full fix will be when new elfutils 0.145 lands (any day now). |