diff options
author | hunt <hunt> | 2006-02-09 00:14:11 +0000 |
---|---|---|
committer | hunt <hunt> | 2006-02-09 00:14:11 +0000 |
commit | 6261b36ab10260fafb7f98eb2320cb46d3f5c1a8 (patch) | |
tree | b2de158e6463b15971045a0daf4343034cb6abd2 | |
parent | 7f9f338638d914f077e67d1c74ef0fecd23d2ae3 (diff) | |
download | systemtap-steved-6261b36ab10260fafb7f98eb2320cb46d3f5c1a8.tar.gz systemtap-steved-6261b36ab10260fafb7f98eb2320cb46d3f5c1a8.tar.xz systemtap-steved-6261b36ab10260fafb7f98eb2320cb46d3f5c1a8.zip |
2006-02-08 Martin Hunt <hunt@redhat.com>
* aux_syscalls.stp(_msync_flag_str): Fix.
(_wait_opt_str): Fix.
* syscalls.stp: Latest.
-rw-r--r-- | tapset/ChangeLog | 6 | ||||
-rw-r--r-- | tapset/aux_syscalls.stp | 16 | ||||
-rw-r--r-- | tapset/syscalls.stp | 360 |
3 files changed, 160 insertions, 222 deletions
diff --git a/tapset/ChangeLog b/tapset/ChangeLog index 2f9a5572..2aae15e4 100644 --- a/tapset/ChangeLog +++ b/tapset/ChangeLog @@ -1,3 +1,9 @@ +2006-02-08 Martin Hunt <hunt@redhat.com> + + * aux_syscalls.stp(_msync_flag_str): Fix. + (_wait_opt_str): Fix. + * syscalls.stp: Latest. + 2006-02-07 Martin Hunt <hunt@redhat.com> * syscalls.stp: Latest. diff --git a/tapset/aux_syscalls.stp b/tapset/aux_syscalls.stp index 2d352c05..9892e118 100644 --- a/tapset/aux_syscalls.stp +++ b/tapset/aux_syscalls.stp @@ -29,7 +29,8 @@ function __fork_flags:string(flags:long) if (flags & CLONE_CHILD_SETTID) strlcat(str, "CLONE_CHILD_SETTID|", MAXSTRINGLEN); if (flags & CLONE_STOPPED) - strlcat(str, "CLONE_STOPPED", MAXSTRINGLEN); + strlcat(str, "CLONE_STOPPED|", MAXSTRINGLEN); + str[strlen(str)-1] = 0; %} /* This function copies an argv from userspace. */ @@ -465,15 +466,16 @@ function _mknod_mode_str(mode) { } /* `man msync` for more information */ -function _wait4_opt_str(f) { - if(f & 4) bs="MS_SYNC|".bs - if(f & 2) bs="MS_INVALIDATE|".bs - if(f & 1) bs="MS_ASYNC|".bs - return substr(bs,0,strlen(bs)-1) +function _msync_flag_str(f) { + if (f & 7 == 0) return "" + if(f & 4) bs="MS_SYNC|".bs + if(f & 2) bs="MS_INVALIDATE|".bs + if(f & 1) bs="MS_ASYNC|".bs + return substr(bs,0,strlen(bs)-1) } /* `man wait4` for more information */ -function _msync_flag_str(f) { +function _wait4_opt_str(f) { if(f & 0x01000000) bs="WNOWAIT|".bs if(f & 8) bs="WCONTINUED|".bs if(f & 4) bs="WEXITED|".bs diff --git a/tapset/syscalls.stp b/tapset/syscalls.stp index c36356a0..b339c028 100644 --- a/tapset/syscalls.stp +++ b/tapset/syscalls.stp @@ -7,6 +7,8 @@ // Public License (GPL); either version 2, or (at your option) any // later version. + + /* Each syscall returns the calls parameters. In addition, the following * variables are set: * @@ -240,86 +242,55 @@ probe kernel.syscall.capset.return = name = "capset.return" } # chdir ______________________________________________________ -/* - * asmlinkage long - * sys_chdir(const char __user * filename) - */ -probe kernel.syscall.chdir = - kernel.function("sys_chdir") { - name = "chdir" - path_uaddr = $filename - } -probe kernel.syscall.chdir.return = - kernel.function("sys_chdir").return { - name = "chdir.return" - } +# long sys_chdir(const char __user * filename) +probe syscall.chdir = kernel.function("sys_chdir") { + name = "chdir" + path = user_string($filename) + argstr = path +} +probe syscall.chdir.return = kernel.function("sys_chdir").return { + name = "chdir" + returnp = 1 +} + # chmod ______________________________________________________ -/* - * asmlinkage long - * sys_chmod(const char __user * filename, - * mode_t mode) - */ -probe kernel.syscall.chmod = - kernel.function("sys_chmod") { - name = "chmod" - path_uaddr = $filename - mode = $mode - mode_str = _sys_open_mode_str($mode) - } -probe kernel.syscall.chmod.return = - kernel.function("sys_chmod").return { - name = "chmod.return" - } +# long sys_chmod(const char __user * filename, mode_t mode) +probe syscall.chmod = kernel.function("sys_chmod") { + name = "chmod" + path = user_string($filename) + mode = $mode + argstr = sprintf("%s, 0%o", path, mode) +} +probe syscall.chmod.return = kernel.function("sys_chmod").return { + name = "chmod" + returnp = 1 +} + # chown ______________________________________________________ -/* - * asmlinkage long - * sys_chown(const char __user * filename, - * uid_t user, - * gid_t group) - */ -probe kernel.syscall.chown = - kernel.function("sys_chown") { - name = "chown" - path_uaddr = $filename - owner = $user - group = $group - } -probe kernel.syscall.chown.return = - kernel.function("sys_chown").return { - name = "chown.return" - } -# chown16 ____________________________________________________ -/* - * asmlinkage long - * sys_chown16(const char __user * filename, - * old_uid_t user, - * old_gid_t group) - */ -probe kernel.syscall.chown16 = - kernel.function("sys_chown") { - name = "chown16" - path_uaddr = $filename - owner = $user - group = $group - } -probe kernel.syscall.chown16.return = - kernel.function("sys_chown").return { - name = "chown16.return" - } +# long sys_chown(const char __user * filename, uid_t user, gid_t group) +probe syscall.chown = kernel.function("sys_chown") { + name = "chown" + path = user_string($filename) + owner = $user + group = $group + argstr = sprintf("%s, %d, %d",path, owner, group) +} +probe syscall.chown.return = kernel.function("sys_chown").return { + name = "chown" + returnp = 1 +} + # chroot _____________________________________________________ -/* - * asmlinkage long - * sys_chroot(const char __user * filename) - */ -probe kernel.syscall.chroot = - kernel.function("sys_chroot") { - name = "chroot" - path_uaddr = $filename - } -probe kernel.syscall.chroot.return = - kernel.function("sys_chroot").return { - name = "chroot.return" - } +# long sys_chroot(const char __user * filename) +probe syscall.chroot = kernel.function("sys_chroot") { + name = "chroot" + path = user_string($filename) + argstr = path +} +probe syscall.chroot.return = kernel.function("sys_chroot").return { + name = "chroot" + returnp = 1 +} # clock_getres _______________________________________________ /* * asmlinkage long @@ -403,23 +374,21 @@ probe kernel.syscall.clock_settime.return = * int __user *parent_tidptr, * int __user *child_tidptr) */ -probe kernel.syscall.clone = - kernel.function("do_fork") { +probe syscall.clone = kernel.function("sys_clone") { name = "clone" - clone_flags = $clone_flags - /* - * unable to find local 'start_stack' (maybe i386 specific) - * start_stack = $start_stack - */ - regs_uaddr = $regs - stack_size = $stack_size - parent_tid_uaddr = $parent_tidptr - child_tid_uaddr = $child_tidptr } -probe kernel.syscall.clone.return = - kernel.function("do_fork").return { - name = "clone.return" +probe syscall.clone.return = kernel.function("sys_clone").return { + name = "clone" + returnp = 1 +} +probe syscall.vfork = kernel.function("sys_vfork") { + name = "vfork" } +probe syscall.vfork.return = kernel.function("sys_vfork").return { + name = "vfork" + returnp = 1 +} + # close ______________________________________________________ # long sys_close(unsigned int fd) probe syscall.close = kernel.function("sys_close") { @@ -449,23 +418,6 @@ probe kernel.syscall.connect.return = kernel.function("sys_connect").return { name = "connect.return" } -# creat ______________________________________________________ -/* - * asmlinkage long - * sys_creat(const char __user * pathname, - * int mode) - */ -probe kernel.syscall.creat = - kernel.function("sys_open") { - name = "creat" - pathname_uaddr = $filename - mode = $mode - mode_str = _sys_open_mode_str($mode) - } -probe kernel.syscall.creat.return = - kernel.function("sys_open").return { - name = "creat.return" - } # delete_module ______________________________________________ /* * asmlinkage long @@ -582,7 +534,8 @@ probe syscall.execve = kernel.function("do_execve") { args = __get_argv($argv) argstr = sprintf("%s %s", filename, args) } -# v2.6.15-rc2 or earlier has problems with sys_execve +# v2.6.15-rc2 or earlier has problems with sys_execve return probes +# another reason to probe on do_execve probe syscall.execve.return = kernel.function("do_execve").return { name = "execve" returnp = 1 @@ -654,55 +607,46 @@ probe kernel.syscall.fadvise64_64.return = kernel.function("sys_fadvise64_64").return { name = "fadvise64_64.return" } + # fchdir _____________________________________________________ -/* - * asmlinkage long - * sys_fchdir(unsigned int fd) - */ -probe kernel.syscall.fchdir = - kernel.function("sys_fchdir") { - name = "fchdir" - fd = $fd - } -probe kernel.syscall.fchdir.return = - kernel.function("sys_fchdir").return { - name = "fchdir.return" - } +# long sys_fchdir(unsigned int fd) +probe syscall.fchdir = kernel.function("sys_fchdir") { + name = "fchdir" + fd = $fd + argstr = string($fd) +} +probe syscall.fchdir.return = kernel.function("sys_fchdir").return { + name = "fchdir" + returnp = 1 +} + # fchmod _____________________________________________________ -/* - * asmlinkage long - * sys_fchmod(unsigned int fd, - * mode_t mode) - */ -probe kernel.syscall.fchmod = - kernel.function("sys_fchmod") { - name = "fchmod" - fildes = $fd - mode = $mode - mode_str = _sys_open_mode_str($mode) - } -probe kernel.syscall.fchmod.return = - kernel.function("sys_fchmod").return { - name = "fchmod.return" - } +# long sys_fchmod(unsigned int fd, mode_t mode) +probe syscall.fchmod = kernel.function("sys_fchmod") { + name = "fchmod" + fildes = $fd + mode = $mode + argstr = sprintf("%d, 0%o", filedes, mode) +} +probe syscall.fchmod.return = kernel.function("sys_fchmod").return { + name = "fchmod" + returnp = 1 +} + # fchown _____________________________________________________ -/* - * asmlinkage long - * sys_fchown(unsigned int fd, - * uid_t user, - * gid_t group) - */ -probe kernel.syscall.fchown = - kernel.function("sys_fchown") { - name = "fchown" - fd = $fd - owner = $user - group = $group - } -probe kernel.syscall.fchown.return = - kernel.function("sys_fchown").return { - name = "fchown.return" - } +# long sys_fchown(unsigned int fd, uid_t user, gid_t group) +probe syscall.fchown = kernel.function("sys_fchown") { + name = "fchown" + fd = $fd + owner = $user + group = $group + argstr = sprintf("%d, %d, %d",fd, owner, group) +} +probe syscall.fchown.return = kernel.function("sys_fchown").return { + name = "fchown" + returnp = 1 +} + # fchown16 ___________________________________________________ /* * asmlinkage long @@ -2383,67 +2327,53 @@ probe kernel.syscall.msgsnd.return = kernel.function("sys_msgsnd").return { name = "msgsnd.return" } + # msync ______________________________________________________ -/* - * asmlinkage long - * sys_msync(unsigned long start, - * size_t len, - * int flags) - */ -probe kernel.syscall.msync = - kernel.function("sys_msync") { - name = "msync" - start = $start - length = $len - flags = $flags - flags_str = _msync_flag_str($flags) - } -probe kernel.syscall.msync.return = - kernel.function("sys_msync").return { - name = "msync.return" - } +# long sys_msync(unsigned long start, size_t len, int flags) +probe syscall.msync = kernel.function("sys_msync") { + name = "msync" + start = $start + length = $len + flags = $flags + argstr = sprintf("0x%x, %d, %s",start, length, _msync_flag_str(flags)) +} +probe syscall.msync.return = kernel.function("sys_msync").return { + name = "msync.return" + returnp = 1 +} + # munlock ____________________________________________________ -/* - * asmlinkage long - * sys_munlock(unsigned long start, - * size_t len) - */ -probe kernel.syscall.munlock = - kernel.function("sys_munlock") { - name = "munlock" - addr = $start - len = $len - } -probe kernel.syscall.munlock.return = - kernel.function("sys_munlock").return { - name = "munlock.return" - } +# long sys_munlock(unsigned long start, size_t len) +probe syscall.munlock = kernel.function("sys_munlock") { + name = "munlock" + addr = $start + len = $len + argstr = sprintf("0x%x, %d", addr, len) +} +probe syscall.munlock.return = kernel.function("sys_munlock").return { + name = "munlock" + returnp = 1 +} + # munlockall _________________________________________________ -/* - * asmlinkage long - * sys_munlockall(void) - */ -probe kernel.syscall.munlockall = - kernel.function("sys_munlockall") { - name = "munlockall" - } -probe kernel.syscall.munlockall.return = - kernel.function("sys_munlockall").return { - name = "munlockall.return" - } +# long sys_munlockall(void) +probe syscall.munlockall = kernel.function("sys_munlockall") { + name = "munlockall" +} +probe syscall.munlockall.return = kernel.function("sys_munlockall").return { + name = "munlockall" + returnp = 1 +} + # munmap _____________________________________________________ -/* - * asmlinkage long - * sys_munmap(unsigned long addr, - * size_t len) - */ -probe kernel.syscall.munmap = - kernel.function("sys_munmap") { - name = "munmap" - start = $addr - length = $len - } -probe kernel.syscall.munmap.return = - kernel.function("sys_munmap").return { - name = "munmap.return" - } +# long sys_munmap(unsigned long addr, size_t len) +probe syscall.munmap = kernel.function("sys_munmap") { + name = "munmap" + start = $addr + length = $len + argstr = sprintf("0x%x, %d", start, length) +} +probe syscall.munmap.return = kernel.function("sys_munmap").return { + name = "munmap" + returnp = 1 +} |