This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug testsuite/11722] on ppc, usymbols.exp should be probing syscall.rt_sigaction32, not syscall.rt_sigaction
- From: "mjw at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sources dot redhat dot com
- Date: 22 Jun 2010 14:02:51 -0000
- Subject: [Bug testsuite/11722] on ppc, usymbols.exp should be probing syscall.rt_sigaction32, not syscall.rt_sigaction
- References: <20100618181651.11722.dsmith@redhat.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From mjw at redhat dot com 2010-06-22 14:02 -------
One additional issue came up. user_long fetches a signed long. The patches make
it so that it now fetches a signed 32bit long if appropriate. But these signed
values are then stored in a systemtap long, which is always 64 bit and signed.
So when processing these signed longs we need to make sure we only use the 32bit
portion of it when appropriate. The following patch does this by intercepting
the addresses when a user passes them from a a tapset script to a user space
address lookup function. These aren't the nicest place, but the best I could
come up with for now:
commit 80b3ca081b10d31ee3379589f59253b38de7c852
Author: Mark Wielaard <mjw@redhat.com>
Date: Tue Jun 22 15:53:47 2010 +0200
PR11722 Handle signed "addresses" from 32-on-64 user processes.
A systemtap long is signed, and so can contain a "negative" address.
Make sure to "chop off" the signedness when processing these longs
for 32-on-64 bit user tasks.
* runtime/compatdefs.h: Always (redifine) TIF_32BIT.
* runtime/sym.c (_stp_kallsyms_lookup): Detect long used as 32bit address.
* runtime/vma.c (_stp_vma_module_name): Likewise.
--
http://sourceware.org/bugzilla/show_bug.cgi?id=11722
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.