Hi,

The last time I tried something like that, you had to start a seperate
Dtrace script for every process you wanted to trace - I don't think the pid
provider allows for tracing of more than one process at a time (from within
a single script).

I don't have an example handy, but if you search for "pid provider" "fork"
and "system" or similar, you should get along.

HTH
Michael

On Fri, Oct 24, 2014 at 9:13 AM, Nan Xiao via dtrace-discuss <
dtrace-discuss@lists.dtrace.org> wrote:

> Hi all,
>
> Firstly, I am very sorry for interrupting mailing list so frequently these
> days. As a newbie of DTrace, I think this mailing list is the best place
> for discussing DTrace issues. And I am very grateful for everybody who has
> helped me, thanks!
>
> I am using DTrace to trace some libc module functions. E.g., the C program
> is like this:
>
> #include <stdio.h>
> #include <sys/types.h>
> #include <unistd.h>
>
> int main(void) {
> pid_t pid = 0;
>  pid = fork();
> if (pid > 0) {
> printf("Parent:%d\n", time(NULL));
> } else if (pid == 0) {
> printf("Child:%d\n", time(NULL));
> }
>  return 0;
> }
> If I want to trace time function of parent process, the DTrace script is
> easy:
>
> pid$target:libc:time:return
> {
> trace(arg1);
> ustack();
> }
> Now, if I want to trace both parent and child processes, it seems a little
> difficult.
>
> Firstly, I should get the child process ID:
>
> pid_t child_pid;
>  pid$target::fork:return
> {
> child_pid = (pid_t)arg1;
> ustack();
> }
>
> Secondly, I want to trace both parent and child processes. I tried the
> following methods:
>
> 1)
> libc:time:return
> /pid && (pid == $target || pid == child_pid)/
> {
> trace(arg1);
> ustack();
> }
> The DTrace complains ":libc:time:return does not match any probes" error.
>
> 2)
> pid*:libc:time:return
> /pid && (pid == $target || pid == child_pid)/
> {
> trace(arg1);
> ustack();
> }
>
> The DTrace complains "probe description pid*:libc:time:return does not
> match any probes" error.
>
> So is there any good methods of tracing libc module of both parent and
> child processes?‍ Thanks very much in advance!
>
> Best Regards
> Nan Xiao‍
> *dtrace-discuss* | Archives
> <https://www.listbox.com/member/archive/184261/=now>
> <https://www.listbox.com/member/archive/rss/184261/21484606-333c2651> |
> Modify
> <https://www.listbox.com/member/?&;>
> Your Subscription <http://www.listbox.com>
>



-- 
Michael Schuster
http://recursiveramblings.wordpress.com/



-------------------------------------------
dtrace-discuss
Archives: https://www.listbox.com/member/archive/184261/=now
RSS Feed: https://www.listbox.com/member/archive/rss/184261/25769126-e243886f
Modify Your Subscription: 
https://www.listbox.com/member/?member_id=25769126&id_secret=25769126-8d47a7b2
Powered by Listbox: http://www.listbox.com

Reply via email to