Hey Robert,

> If I have foo(), where
> 
>       foo() {
>               return(bar());
>       }
> 
> then should I expect anything unusual about args[1]
> in fbt::foo:return? Should I expect args[1] in such
> a probe to give me X where
> 
>       X = foo()

If the code above were compiled into a tail call, the foo:return probe would 
fire before the bar:entry probe. The value of arg1 or args[1] will not contain 
the value returned to the caller of foo().

To trace that value, one can write a simple script:

foo:entry
{
        self->follow = 1;
}

bar:return
/self->follow/
{
        trace(arg1);
        self->follow = 0;
}

This applies both for user-land and the kernel.

Adam

--
Adam Leventhal, Fishworks                        http://blogs.sun.com/ahl

_______________________________________________
dtrace-discuss mailing list
dtrace-discuss@opensolaris.org

Reply via email to