summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2010-03-23 14:40:43 -0500
committerDavid Smith <dsmith@redhat.com>2010-03-23 14:40:43 -0500
commit4afa95f6c4f601ce9c002913b94864c99ebf4392 (patch)
tree3c503879275b247117033e60916610cfde118482
parent72cdb9cd5afd6936a189b26a29eb8aa23d32a4fa (diff)
downloadsystemtap-steved-4afa95f6c4f601ce9c002913b94864c99ebf4392.tar.gz
systemtap-steved-4afa95f6c4f601ce9c002913b94864c99ebf4392.tar.xz
systemtap-steved-4afa95f6c4f601ce9c002913b94864c99ebf4392.zip
Partial fix for pr 11414. Fixed several 32-bit probe points.
* tapset/nd_syscalls2.stp: Updated/fixed rt_sigaction32, compat_select, and sigaction32 probes.
-rw-r--r--tapset/nd_syscalls2.stp21
1 files changed, 13 insertions, 8 deletions
diff --git a/tapset/nd_syscalls2.stp b/tapset/nd_syscalls2.stp
index 9ea421bf..7d58bec8 100644
--- a/tapset/nd_syscalls2.stp
+++ b/tapset/nd_syscalls2.stp
@@ -1297,13 +1297,15 @@ probe nd_syscall.rt_sigaction32 = kprobe.function("sys32_rt_sigaction") ?,
// act_uaddr = $act
// oact_uaddr = $oact
// sigsetsize = $sigsetsize
- // argstr = sprintf("%s, %p, %p, %d", _signal_name($sig), $act, $oact, $sigsetsize)
+ // argstr = sprintf("%s, {%s}, %p, %d", _signal_name($sig),
+ // _struct_sigaction32_u($act), $oact, $sigsetsize)
asmlinkage()
sig = int_arg(1)
act_uaddr = pointer_arg(2)
oact_uaddr = pointer_arg(3)
sigsetsize = uint_arg(4)
- argstr = sprintf("%s, %p, %p, %d", _signal_name(sig), act_uaddr, oact_uaddr, sigsetsize)
+ argstr = sprintf("%s, {%s}, %p, %d", _signal_name(sig),
+ _struct_sigaction32_u(act_uaddr), oact_uaddr, sigsetsize)
}
probe nd_syscall.rt_sigaction32.return = kprobe.function("sys32_rt_sigaction").return ?,
kprobe.function("compat_sys_rt_sigaction").return ?
@@ -1770,8 +1772,9 @@ probe nd_syscall.compat_select = kprobe.function("compat_sys_select") ?
writefds_uaddr = pointer_arg(3)
exceptfds_uaddr = pointer_arg(4)
timeout_uaddr = pointer_arg(5)
- argstr = sprintf("%d, %p, %p, %p, %s", n, readfds_uaddr, writefds_uaddr,
- exceptfds_uaddr, _struct_timeval_u(timeout_uaddr, 1))
+ argstr = sprintf("%d, %p, %p, %p, %s", n, readfds_uaddr,
+ writefds_uaddr, exceptfds_uaddr,
+ _struct_compat_timeval_u(timeout_uaddr, 1))
}
probe nd_syscall.compat_select.return = kprobe.function("compat_sys_select").return ?
{
@@ -2983,20 +2986,22 @@ probe nd_syscall.sigaction.return = kprobe.function("sys_sigaction").return ?
name = "sigaction"
retstr = returnstr(1)
}
-probe nd_syscall.sigaction32 = kprobe.function("sys32_sigaction") ?
+probe nd_syscall.sigaction32 = kprobe.function("sys32_sigaction") ?,
+ kprobe.function("compat_sys_sigaction") ?
{
name = "sigaction"
// sig = $sig
// sact_uaddr = $act
// soact_uaddr = $oact
- // sargstr = sprintf("%s, %p, %p", _signal_name($sig), $act, $oact)
+ // argstr = sprintf("%s, {%s}, %p", _signal_name($sig), _struct_old_sigaction32_u($act), $oact)
asmlinkage()
sig = int_arg(1)
act_uaddr = pointer_arg(2)
oact_uaddr = pointer_arg(3)
- argstr = sprintf("%s, %p, %p", _signal_name(sig), act_uaddr, oact_uaddr)
+ argstr = sprintf("%s, {%s}, %p", _signal_name(sig), _struct_old_sigaction32_u(act_uaddr), oact_uaddr)
}
-probe nd_syscall.sigaction32.return = kprobe.function("sys32_sigaction").return ?
+probe nd_syscall.sigaction32.return = kprobe.function("sys32_sigaction").return ?,
+ kprobe.function("compat_sys_sigaction") ?
{
name = "sigaction"
retstr = returnstr(1)