summaryrefslogtreecommitdiffstats
path: root/runtime/task_finder.c
diff options
context:
space:
mode:
authorDavid Smith <dsmith@redhat.com>2008-08-20 12:33:13 -0500
committerDavid Smith <dsmith@redhat.com>2008-08-20 12:33:13 -0500
commitef4042bd5adb8062c31789a9786bf558f5f11e9e (patch)
treeed2dde1e1b32da88888763da19775d3f6e763ed6 /runtime/task_finder.c
parent930a1798154b9c1caf27009825b2b165ef577a1e (diff)
downloadsystemtap-steved-ef4042bd5adb8062c31789a9786bf558f5f11e9e.tar.gz
systemtap-steved-ef4042bd5adb8062c31789a9786bf558f5f11e9e.tar.xz
systemtap-steved-ef4042bd5adb8062c31789a9786bf558f5f11e9e.zip
Looks for both mmap and mmap2.
2008-08-20 David Smith <dsmith@redhat.com> * task_finder.c (__stp_utrace_task_finder_target_syscall_entry): Handles mmap2 (as well as mmap). (__stp_utrace_task_finder_target_syscall_exit): Ditto. * syscall.h: Added defines for mmap and mmap2.
Diffstat (limited to 'runtime/task_finder.c')
-rw-r--r--runtime/task_finder.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/runtime/task_finder.c b/runtime/task_finder.c
index d7450a41..b483cf23 100644
--- a/runtime/task_finder.c
+++ b/runtime/task_finder.c
@@ -717,6 +717,7 @@ __stp_utrace_task_finder_target_syscall_entry(struct utrace_attached_engine *eng
// FIXME: do we need to handle mremap()?
syscall_no = __stp_user_syscall_nr(regs);
if (syscall_no != MMAP_SYSCALL_NO(tsk)
+ && syscall_no != MMAP2_SYSCALL_NO(tsk)
&& syscall_no != MPROTECT_SYSCALL_NO(tsk)
&& syscall_no != MUNMAP_SYSCALL_NO(tsk))
return UTRACE_ACTION_RESUME;
@@ -815,6 +816,7 @@ __stp_utrace_task_finder_target_syscall_exit(struct utrace_attached_engine *engi
// FIXME: do we need to handle mremap()?
syscall_no = __stp_user_syscall_nr(regs);
if (syscall_no != MMAP_SYSCALL_NO(tsk)
+ && syscall_no != MMAP2_SYSCALL_NO(tsk)
&& syscall_no != MPROTECT_SYSCALL_NO(tsk)
&& syscall_no != MUNMAP_SYSCALL_NO(tsk))
return UTRACE_ACTION_RESUME;
@@ -841,10 +843,11 @@ __stp_utrace_task_finder_target_syscall_exit(struct utrace_attached_engine *engi
"tsk %d found %s(0x%lx), returned 0x%lx\n",
tsk->pid,
((syscall_no == MMAP_SYSCALL_NO(tsk)) ? "mmap"
- : ((syscall_no == MPROTECT_SYSCALL_NO(tsk)) ? "mprotect"
- : ((syscall_no == MUNMAP_SYSCALL_NO(tsk)) ? "munmap"
- : "UNKNOWN"))),
- arg0, rv);
+ : ((syscall_no == MMAP2_SYSCALL_NO(tsk)) ? "mmap2"
+ : ((syscall_no == MPROTECT_SYSCALL_NO(tsk)) ? "mprotect"
+ : ((syscall_no == MUNMAP_SYSCALL_NO(tsk)) ? "munmap"
+ : "UNKNOWN"))),
+ arg0, rv);
#endif
// Try to find the vma info we might have saved.