Fedora Account System
Red Hat Associate
Red Hat Customer
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
systemtap-1.4-2.fc14 has been submitted as an update for Fedora 14. https://admin.fedoraproject.org/updates/systemtap-1.4-2.fc14
systemtap-1.4-2.fc13 has been submitted as an update for Fedora 13. https://admin.fedoraproject.org/updates/systemtap-1.4-2.fc13
systemtap-1.4-2.fc13 has been pushed to the Fedora 13 stable repository. If problems still persist, please make note of it in this bug report.
systemtap-1.4-2.fc14 has been pushed to the Fedora 14 stable repository. If problems still persist, please make note of it in this bug report.
fix in f13 through rawhide