Nigel S wrote:
> I'm a newbie as dtrace, but couldn't find an answer to this by searching
> :
> 
> For example, I have function "lsearch" which is called in many different
> places. It's also called by "composemessage".
> 
> I have been able to successfully create a script which show the return
> values of "lsearch". Now what I would like to do, is for it to only show
> the return value of "lsearch" when it's called by "composemessage".

Hi Nigel,
perhaps something like this might work for you:



===========================================================
#!/usr/sbin/dtrace

pid$target::*composemessage*:entry
{
        self->composed = 1;
}

pid$target::*lsearch*:entry
/self->composed/
{
        ustack(10);
}

pid$target::*lsearch*:return
/self->composed/
{
        printf("returning %d", arg1);
        self->composed = 0;
}
===========================================================


You should have a look in the DTrace manual for info about
predicates.


hth,
James C. McPherson
--
Senior Kernel Software Engineer, Solaris
Sun Microsystems
http://blogs.sun.com/jmcp       http://www.jmcp.homeunix.com/blog
_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to