Darren Reed
2011-04-06 13:48:58 UTC
If I use a simple dtrace script such as this:
fbt::somefunc:entry{self->trace=1;}
fbt::somefunc:return{self->trace=0;}
fbt:::entry{}
fbt:::return{printf("%lx", arg1);}
then it will descend to whatever depth is necessary
If I want to limit it to say 3 functions deep, how can I do that?
The quick answer I want to use is to do "self->depth++" on each entry
and then use /self->depth < 4/...
but the problem is then handling return and decrementing depth properly.
Is there something that I'm missing?
Darren
fbt::somefunc:entry{self->trace=1;}
fbt::somefunc:return{self->trace=0;}
fbt:::entry{}
fbt:::return{printf("%lx", arg1);}
then it will descend to whatever depth is necessary
If I want to limit it to say 3 functions deep, how can I do that?
The quick answer I want to use is to do "self->depth++" on each entry
and then use /self->depth < 4/...
but the problem is then handling return and decrementing depth properly.
Is there something that I'm missing?
Darren