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]

Reply via email to