This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug uprobes/15279] New: Stop munging the uprobes IP with kernel 3.9
- From: "jistone at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Fri, 15 Mar 2013 02:23:17 +0000
- Subject: [Bug uprobes/15279] New: Stop munging the uprobes IP with kernel 3.9
- Auto-submitted: auto-generated
http://sourceware.org/bugzilla/show_bug.cgi?id=15279
Bug #: 15279
Summary: Stop munging the uprobes IP with kernel 3.9
Product: systemtap
Version: unspecified
Status: NEW
Severity: normal
Priority: P2
Component: uprobes
AssignedTo: systemtap@sourceware.org
ReportedBy: jistone@redhat.com
Classification: Unclassified
As of commit 74e59dfc, merged for kernel 3.9, uprobes now sets regs->ip to the
breakpoint address prior to calling the handler. This means we no longer need
to call uprobe_get_swbp_addr(), and in fact would be incorrect to do so since
the ip would get adjusted twice.
For example, on 3.9.0-0.rc2.git0.3.fc19.x86_64:
$ ./run-stap -e 'probe process.mark("*") { printf("%s %#x\n", pp(), uaddr())
}' \
-c './stap -l begin'
begin
process("[...]/stap").statement(0x41262d) 0x41262c
process("[...]/stap").statement(0x4128a2) 0x4128a1
process("[...]/stap").statement(0x4128bf) 0x4128be
process("[...]/stap").statement(0x4148f5) 0x4148f4
process("[...]/stap").statement(0x414992) 0x414991
process("[...]/stap").statement(0x414d5d) 0x414d5c
process("[...]/stap").statement(0x414dbc) 0x414dbb
process("[...]/stap").statement(0x4120df) 0x4120de
process("[...]/stap").statement(0x41212b) 0x41212a
process("[...]/stap").statement(0x51b8b9) 0x51b8b8
process("[...]/stap").statement(0x51ba83) 0x51ba82
process("[...]/stap").statement(0x51c53c) 0x51c53b
Every uaddr() is one less than its real statement address because we
overadjusted.
We could gate this on >=KERNEL_VERSION(3,9,0), but usually we prefer more
direct feature tests, to deal with kernel backports. There's nothing directly
visible for this change, but that commit was intermingled with prefiltering
commits (PR15278), so we could use one of those #defines as an indicator.
--
Configure bugmail: http://sourceware.org/bugzilla/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.