This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/12411] New: Markers using %rbx register incorrectly incorrectly masked to 8.
- From: "wcohen at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: Tue, 18 Jan 2011 21:40:09 +0000
- Subject: [Bug tapsets/12411] New: Markers using %rbx register incorrectly incorrectly masked to 8.
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=12411
Summary: Markers using %rbx register incorrectly incorrectly
masked to 8.
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: tapsets
AssignedTo: systemtap@sources.redhat.com
ReportedBy: wcohen@redhat.com
When attempting to build an executable of Ruby that includes systemtap marker
using SystemTap 1.4 some arguments for markers were truncated to 8 bits in
size.
The problem is caused by the
sdt_uprobe_var_expanding_visitor::get_register_width() function "%rbx" as being
a bytes sized (8 bit) register rather that a full 64-bit registers.
To replicate problem on rhel6 or fedora:
1) install systemtap-1.4 on the machine
2a) make sure that the systemtap dtrace is available in /usr/bin/dtrace
2b) make sure that the uprobes modules is available, as root:
make -C /usr/share/systemtap/runtime/uprobes
3) download the
http://people.redhat.com/wcohen/ruby-1.8.7.299-6.el6.dtrace_4.src.rpm
3) build and install the ruby rpms
4) Verify that probes are available with:
stap -L 'process("/usr/lib64/libruby.so.1.8").mark("*")
5) Use the following script to demonstrate the problem
stap -e 'probe
process("/usr/lib64/libruby.so.1.8").function("rb_class2name").return
{printf("$return=0x%x %s\n", $return, user_string($return))} probe
process("/usr/lib64/libruby.so.1.8").mark("function__entry"){printf("$arg1=0x%x\n",
$arg1)}'
in another window run a ruby program for example
ruby ~/rpmbuild/BUILD/ruby-1.8.7.299/ruby-1.8.7-p299/sample/biorhythm.rb
See something like the following out from the systemtap script where $arg1 is
just the low 8 bits of the pointer:
$return=0x9d4450 Hash
$arg1=0x50
$return=0x9c5c30 String
$arg1=0x30
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.