diff options
author | Mark Wielaard <mjw@redhat.com> | 2010-03-20 20:20:39 +0100 |
---|---|---|
committer | Mark Wielaard <mjw@redhat.com> | 2010-03-21 17:34:41 +0100 |
commit | af872fe279a52fb19d5483db7d29cdaa1814ccdc (patch) | |
tree | 7f9f6c5d362da37e1c50214d7559ddcb8b2eebc4 /tapset | |
parent | 816395d6f1c433cddc1eaecba2248168c1dd4a5a (diff) | |
download | systemtap-steved-af872fe279a52fb19d5483db7d29cdaa1814ccdc.tar.gz systemtap-steved-af872fe279a52fb19d5483db7d29cdaa1814ccdc.tar.xz systemtap-steved-af872fe279a52fb19d5483db7d29cdaa1814ccdc.zip |
Match syscall.pipe32 with regular syscall.pipe[2] output.
* tapset/x86_64/syscalls.stp (syscall.pipe32[.return]): Define same
variables and match argstr with regular syscall.pipe.
Diffstat (limited to 'tapset')
-rw-r--r-- | tapset/x86_64/syscalls.stp | 35 |
1 files changed, 34 insertions, 1 deletions
diff --git a/tapset/x86_64/syscalls.stp b/tapset/x86_64/syscalls.stp index bcb9523d..c385f824 100644 --- a/tapset/x86_64/syscalls.stp +++ b/tapset/x86_64/syscalls.stp @@ -149,10 +149,43 @@ probe syscall.vm86_warning.return = kernel.function("sys32_vm86_warning").return probe syscall.pipe32 = kernel.function("sys32_pipe")? { name = "pipe" - argstr = sprintf("%p", $fd) + flags = 0; + if (@defined($fd)) { + fildes_uaddr = $fd + if (fildes_uaddr == 0) { + pipe0 = 0; + pipe1 = 0; + argstr = "NULL" + } else { + pipe0 = user_int(&$fd[0]); + pipe1 = user_int(&$fd[1]); + argstr = sprintf("[%d, %d]", pipe0, pipe1); + } + } else { + fildes_uaddr = 0; + pipe0 = 0; + pipe1 = 0; + argstr = "[0, 0]"; + } + argstr = sprintf("[%d, %d]", pipe0, pipe1) } probe syscall.pipe32.return = kernel.function("sys32_pipe").return? { name = "pipe" + flags = 0; + if (@defined($fd)) { + fildes_uaddr = $fd + if (fildes_uaddr == 0) { + pipe0 = 0; + pipe1 = 0; + } else { + pipe0 = user_int(&$fd[0]); + pipe1 = user_int(&$fd[1]); + } + } else { + fildes_uaddr = 0; + pipe0 = 0; + pipe1 = 0; + } retstr = returnstr(1) } |