This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/19500] .callee test failures
- From: "dsmith at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Fri, 26 Feb 2016 21:11:26 +0000
- Subject: [Bug translator/19500] .callee test failures
- Auto-submitted: auto-generated
- References: <bug-19500-6586 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=19500
--- Comment #4 from David Smith <dsmith at redhat dot com> ---
On rawhide x86_64 (4.5.0-0.rc5.git0.1.fc24.x86_64), the "callee (simple -
probing .callee(foo).return - 32-bit)" failure is the equivalent of doing the
following:
====
# gcc ../../src/testsuite/systemtap.base/callee.simple.c -m32 -O -g -lm -o
callee
# stap -e 'probe process("./callee").function("main").callee("level1").return {
printf("caller %s callee %s\n", usymname(ustack(0)), ppfunc()) }' -c ./callee
WARNING: Child process exited with signal 11 (Segmentation fault)
WARNING: /usr/local/bin/staprun exited with status: 1
Pass 5: run failed. [man error::pass5]
====
Without stap, callee runs without getting a SIGSEGV. This appears to be a
kernel problem, since I get the same SIGSEV without systemtap by just using
perf:
====
# gcc ../../src/testsuite/systemtap.base/callee.simple.c -m32 -O -g -lm -o
callee
# perf probe -x ./callee 'cmr=main%return'
Added new event:
probe_callee:cmr (on main%return in
/discer.farm/es/scratch/dsmith/systemtap/rawhide-64-2/testsuite/callee)
You can now use it in all perf tools, such as:
perf record -e probe_callee:cmr -aR sleep 1
# perf record -e probe_callee:cmr -aR ./callee
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.148 MB perf.data (1 samples) ]
Segmentation fault
====
On RHEL7 x86_64 (3.10.0-347.el7.x86_64), I get the same "callee (simple -
probing .callee(foo).return - 32-bit)" failure when running the new callee.exp.
The output looks similar to the rawhide system:
====
# gcc ../../src/testsuite/systemtap.base/callee.simple.c -m32 -O -g -lm -o
callee
# stap -e 'probe process("./callee").function("main").callee("level1").return {
printf("caller %s callee %s\n", usymname(ustack(0)), ppfunc()) }' -c ./callee
WARNING: Child process exited with signal 11 (Segmentation fault)
WARNING: /usr/local/bin/staprun exited with status: 1
Pass 5: run failed. [man error::pass5]
====
However, when run with perf, the target doesn't get a SIGSEGV:
====
# perf probe -x ./callee 'callee32=main%return'
Added new event:
probe_callee:callee32 (on main%return in
/discer.farm/es/scratch/dsmith/systemtap/rhel7-64/testsuite/callee)
You can now use it in all perf tools, such as:
perf record -e probe_callee:callee32 -aR sleep 1
# perf record -e probe_callee:callee32 -aR ./callee
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.145 MB perf.data (1 samples) ]
====
So, the RHEL7 failure appears to be a systemtap problem, since it doesn't
happen with perf.
--
You are receiving this mail because:
You are the assignee for the bug.