Hi Brian,
Functions that end in a tail-call to another function can report an
incorrect
return value in the arg1 variable. Take a look at the disassembly at the
location where you're seeing the apparently invalid return values to
confirm
that it's a tail-call.
It can be a little confusing -- sorry about that.
Adam
On Jun 25, 2008, at 5:09 AM, Brian Utterback wrote:
> I am trying to trace the xti functions in a process. I am using the
> following script:
>
> #!/usr/sbin/dtrace -s
> pid$target::t_*:entry
> {
> }
> pid$target::t_*:return
> {
> printf("%x %d",arg0,arg1);
> }
>
>
> My problem is that the value of arg1 that I get is mostly 50 or 48,
> although I have seen large numbers like 642832 and 768712. The thing
> is, the t_* functions almost all return either a 0 or -1. I thought I
> must be missing something simple, like a copying or 32/64 bit thing,
> but I just don't see what the problem is. Any ides?
> --
> blu
>
> There are two rules in life:
> Rule 1- Don't tell people everything you know
> ----------------------------------------------------------------------
> Brian Utterback - Solaris RPE, Sun Microsystems, Inc.
> Ph:877-259-7345, Em:brian.utterback-at-ess-you-enn-dot-kom
> _______________________________________________
> dtrace-discuss mailing list
> [email protected]
--
Adam Leventhal, Fishworks http://blogs.sun.com/ahl
_______________________________________________
dtrace-discuss mailing list
[email protected]