diff options
author | Frank Ch. Eigler <fche@elastic.org> | 2008-09-05 23:18:24 -0400 |
---|---|---|
committer | Frank Ch. Eigler <fche@elastic.org> | 2008-09-05 23:18:24 -0400 |
commit | e56e51c92847a328a713e56eb6796a25cf6eb3e2 (patch) | |
tree | 26f4bbe86348fb29793f493798698edfbdbb8cca /runtime/task_finder.c | |
parent | 40be866ffcfc21a15836643cc7c2437ed5c91e8f (diff) | |
download | systemtap-steved-e56e51c92847a328a713e56eb6796a25cf6eb3e2.tar.gz systemtap-steved-e56e51c92847a328a713e56eb6796a25cf6eb3e2.tar.xz systemtap-steved-e56e51c92847a328a713e56eb6796a25cf6eb3e2.zip |
task_finder <-> target_pid coupling; staprun/target_cmd fork under ptrace control
Diffstat (limited to 'runtime/task_finder.c')
-rw-r--r-- | runtime/task_finder.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/runtime/task_finder.c b/runtime/task_finder.c index 9c0dd55b..2d4eed15 100644 --- a/runtime/task_finder.c +++ b/runtime/task_finder.c @@ -360,7 +360,7 @@ __stp_get_mm_path(struct mm_struct *mm, char *buf, int buflen) | UTRACE_EVENT(EXEC) \ | UTRACE_EVENT(DEATH)) -/* +/* * __STP_TASK_BASE_EVENTS: base events for stap_task_finder_target's * without a vm_callback * @@ -460,7 +460,7 @@ __stp_utrace_attach_match_filename(struct task_struct *tsk, else if (tgt->pid != 0) continue; /* Notice that "pid == 0" (which means to probe all - * threads) falls through. */ + * threads) falls through. */ list_for_each(cb_node, &tgt->callback_list_head) { struct stap_task_finder_target *cb_tgt; @@ -1138,6 +1138,11 @@ stap_start_task_finder(void) size_t mmpathlen; struct list_head *tgt_node; + /* Skip over processes other than that specified with + stap -c or -x. */ + if (_stp_target && tsk->tgid != _stp_target) + continue; + rc = stap_utrace_attach(tsk, &__stp_utrace_task_finder_ops, 0, __STP_TASK_FINDER_EVENTS); if (rc == EPERM) { |