This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/11815] New: SDT_V2 sdt.h broken for modern gcc on x86-64, cxxclass.exp
- From: "fche at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 13 Jul 2010 18:59:28 -0000
- Subject: [Bug translator/11815] New: SDT_V2 sdt.h broken for modern gcc on x86-64, cxxclass.exp
- Reply-to: sourceware-bugzilla at sourceware dot org
With gcc 4.5ish on x86-64, SDT_V2 gets super optimized,
and gives us this ditty in the .probes section assembly code:
3:
.asciz "$.LC0 $64 $24" #,,
.balign 8
where $.LC0 is a reference to a string literal. This symbol
does not get propagated past the assembler, so stap has no
hope of resolving this particular operand.
Secondarily, the regexp magic in tapsets.cxx:4651ish
// this pattern matches 0xD(%R) | (%R) | %R
const char *pattern =
"\\([0x]*-*[0-9]*\\)\\([(]*\\)\\(%*[0-9a-z][0-9a-z]*\\)\\([)]*\\)";
this unfortunately appears to match each of the above quoted operands, and
leads to wrong code generation (fetch_register(0)).
--
Summary: SDT_V2 sdt.h broken for modern gcc on x86-64,
cxxclass.exp
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: translator
AssignedTo: systemtap at sources dot redhat dot com
ReportedBy: fche at redhat dot com
http://sourceware.org/bugzilla/show_bug.cgi?id=11815
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.