]> sourceware.org Git - systemtap.git/commitdiff
PR20333/ptrace
authorMartin Cermak <mcermak@redhat.com>
Mon, 2 Jan 2017 14:30:29 +0000 (15:30 +0100)
committerMartin Cermak <mcermak@redhat.com>
Mon, 2 Jan 2017 14:30:29 +0000 (15:30 +0100)
tapset/linux/nd_syscalls2.stp
tapset/linux/sysc_ptrace.stp [new file with mode: 0644]
tapset/linux/syscalls2.stp

index 991d7dd3b4c70c65e2064905ebdeef64c2cdc861..0835d6d0ab3ebbd0badbb5b9967b728fc1d94fbf 100644 (file)
@@ -1,32 +1,4 @@
 
-# ptrace _____________________________________________________
-#
-# int sys_ptrace(long request,
-#              long pid,
-#              long addr,
-#              long data)
-#
-probe nd_syscall.ptrace = kprobe.function("sys_ptrace") ?,
-       kprobe.function("compat_sys_ptrace") ?
-{
-       name = "ptrace"
-       asmlinkage()
-       request = long_arg(1)
-       pid = int_arg(2)
-       addr = ulong_arg(3)
-       data = ulong_arg(4)
-       argstr = _ptrace_argstr(request, pid, addr, data)
-}
-probe nd_syscall.ptrace.return = kprobe.function("sys_ptrace").return ?,
-       kprobe.function("compat_sys_ptrace").return ?
-{
-       name = "ptrace"
-       retstr = returnstr(1)
-
-       geteventmsg_data = 0
-       arch_prctl_addr = 0
-}
-
 # pwrite64 ___________________________________________________
 #
 # ssize_t sys_pwrite64(unsigned int fd,
diff --git a/tapset/linux/sysc_ptrace.stp b/tapset/linux/sysc_ptrace.stp
new file mode 100644 (file)
index 0000000..daf5d61
--- /dev/null
@@ -0,0 +1,65 @@
+# ptrace _____________________________________________________
+#
+# int sys_ptrace(long request,
+#                long pid,
+#                long addr,
+#                long data)
+#
+
+@define _SYSCALL_PTRACE_NAME
+%(
+       name = "ptrace"
+%)
+
+@define _SYSCALL_PTRACE_ARGSTR
+%(
+       argstr = _ptrace_argstr(request, pid, addr, data)
+%)
+
+probe syscall.ptrace = dw_syscall.ptrace !, nd_syscall.ptrace {}
+probe syscall.ptrace.return = dw_syscall.ptrace.return !, nd_syscall.ptrace.return {}
+
+# dw_ptrace _____________________________________________________
+
+probe dw_syscall.ptrace = kernel.function("sys_ptrace").call ?,
+               kernel.function("compat_sys_ptrace").call ?
+{
+       @_SYSCALL_PTRACE_NAME
+       request = $request
+       pid = __int32($pid)
+       addr = @__compat_ulong($addr)
+       data = @__compat_ulong(@choose_defined($data, $cdata))
+       @_SYSCALL_PTRACE_ARGSTR
+}
+probe dw_syscall.ptrace.return = kernel.function("sys_ptrace").return ?,
+       kernel.function("compat_sys_ptrace").return ?
+{
+       @_SYSCALL_PTRACE_NAME
+       retstr = return_str(1, $return)
+
+       geteventmsg_data = _ptrace_return_geteventmsg_data(@entry($request), @entry($data))
+       arch_prctl_addr = _ptrace_return_arch_prctl_addr(@entry($request), @entry($addr), @entry($data))
+}
+
+# nd_ptrace _____________________________________________________
+
+probe nd_syscall.ptrace = kprobe.function("sys_ptrace") ?,
+       kprobe.function("compat_sys_ptrace") ?
+{
+       @_SYSCALL_PTRACE_NAME
+       asmlinkage()
+       request = long_arg(1)
+       pid = int_arg(2)
+       addr = ulong_arg(3)
+       data = ulong_arg(4)
+       @_SYSCALL_PTRACE_ARGSTR
+}
+probe nd_syscall.ptrace.return = kprobe.function("sys_ptrace").return ?,
+       kprobe.function("compat_sys_ptrace").return ?
+{
+       @_SYSCALL_PTRACE_NAME
+       retstr = returnstr(1)
+
+       geteventmsg_data = 0
+       arch_prctl_addr = 0
+}
index fdb9b735987eba154841710d14d6d18f46fd712d..ed5a5269418d44f9472b9917767013c0c7f99f83 100644 (file)
@@ -1,31 +1,4 @@
 
-# ptrace _____________________________________________________
-#
-# int sys_ptrace(long request,
-#              long pid,
-#              long addr,
-#              long data)
-#
-probe syscall.ptrace = kernel.function("sys_ptrace").call ?,
-               kernel.function("compat_sys_ptrace").call ? 
-{
-       name = "ptrace"
-       request = $request
-       pid = __int32($pid)
-       addr = @__compat_ulong($addr)
-       data = @__compat_ulong(@choose_defined($data, $cdata))
-       argstr = _ptrace_argstr($request, pid, addr, data)
-}
-probe syscall.ptrace.return = kernel.function("sys_ptrace").return ?,
-       kernel.function("compat_sys_ptrace").return ?
-{
-       name = "ptrace"
-       retstr = return_str(1, $return)
-
-       geteventmsg_data = _ptrace_return_geteventmsg_data(@entry($request), @entry($data))
-       arch_prctl_addr = _ptrace_return_arch_prctl_addr(@entry($request), @entry($addr), @entry($data))
-}
-
 # pwrite64 ___________________________________________________
 #
 # ssize_t sys_pwrite64(unsigned int fd,
This page took 0.038979 seconds and 5 git commands to generate.