Hi, All
I have run onto inability to trace (long long) return values - please see 
details below.
Is there a way to get it correctly ?
Thanks in advance

inline unsigned long long ret_ll(void){
    return (unsigned long long)(-1);
}

int main( int argc, char* argv[] ){
    while( 1 ){
        ret_ll();
        sleep(1);
    }
}

Here is what I am getting:

# isainfo -b
64
# dtrace -n "pid`pgrep ret_ll`::ret_ll:return{trace(arg1)}"
dtrace: description 'pid5633::ret_ll:return' matched 1 probe
CPU     ID                    FUNCTION:NAME
  0  47874                    ret_ll:return        4294967295   <-- it is 
definately not a (long long)

PS: have tried as well:
# dtrace -n "pid`pgrep ret_ll`::ret_ll:return{printf(\"%lld\", (long 
long)arg1)}"
dtrace: description 'pid13837::ret_ll:return' matched 1 probe
CPU     ID                    FUNCTION:NAME
  1  47874                    ret_ll:return 4294967295          <-- more like 
just (int)
--
This message posted from opensolaris.org
_______________________________________________
dtrace-discuss mailing list
[email protected]

Reply via email to