This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug tapsets/18143] target_set tapset does not track threads created with clone()
- From: "maxvt at bu dot edu" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Fri, 20 Mar 2015 15:18:49 +0000
- Subject: [Bug tapsets/18143] target_set tapset does not track threads created with clone()
- Auto-submitted: auto-generated
- References: <bug-18143-6586 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=18143
--- Comment #4 from Max Timchenko <maxvt at bu dot edu> ---
Thanks everyone for responses, that was a lot to process. I'll address in
order. New theory as to the source of the problem below.
> ...changed target_set.stp to use process.begin...Does your version of stap 2.6 not have this patch?
David: it has the patch. Checked by looking at the tapset. The exact version is
(version 2.6/0.159, Debian version 2.6-0.2)
> It may be that Max's kernel doesn't have utrace nor satisfy the requirements for stp_utrace.
Josh: looks like uprobe support is there: I'm running
"Linux jessie 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt7-1 (2015-03-01)",
$ grep UPRO /boot/config-3.16.0-4-amd64
CONFIG_ARCH_SUPPORTS_UPROBES=y
CONFIG_UPROBES=y
CONFIG_UPROBE_EVENT=y
New theory: the probe process.begin is silently skipped when running in target
thread mode (-x). This might be the reason the target_set tracking probe fails
to run even though the patch is present and uprobe support is there, since I
always point stap at a particular root process of interest.
Evidence:
testfile1.stp
---
probe process.begin {
printf("Process begin, pid=%d\n", pid())
}
probe process.thread.begin {
printf("Thread begin, pid=%d\n", pid())
}
---
$ stap testfile1.stp
Process begin, pid=1
Process begin, pid=560
Process begin, pid=573
...
$ stap -x 609 testfile1.stp
semantic error: while resolving probe point: identifier 'process' at
test.stp:1:7
source: probe process.begin {
^
semantic error: invalid pid
Pass 2: analysis failed. [man error::pass2]
Number of similar error messages suppressed: 1.
Rerun with -v to see them.
Tip: /usr/share/doc/systemtap/README.Debian should help you get started.
testfile2.stp
---
probe process.begin! {
printf("Process begin, pid=%d\n", pid())
}
probe process.thread.begin! {
printf("Thread begin, pid=%d\n", pid())
}
probe syscall.open {
printf("Let's add one working probe")
}
---
$ stap -x 609 testfile2.stp
Makefile:10: *** mixed implicit and normal rules: deprecated syntax
Let's add one working probe
Let's add one working probe
...
--
You are receiving this mail because:
You are the assignee for the bug.