summaryrefslogtreecommitdiffstats
path: root/runtime/task_finder.c
diff options
context:
space:
mode:
authorFrank Ch. Eigler <fche@elastic.org>2008-09-05 23:18:24 -0400
committerFrank Ch. Eigler <fche@elastic.org>2008-09-05 23:18:24 -0400
commite56e51c92847a328a713e56eb6796a25cf6eb3e2 (patch)
tree26f4bbe86348fb29793f493798698edfbdbb8cca /runtime/task_finder.c
parent40be866ffcfc21a15836643cc7c2437ed5c91e8f (diff)
downloadsystemtap-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.c9
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) {