[dtrace-discuss] dtrace syscall:::return arg0 weidness on b56 ( x86)

Michael Schuster Michael.Schuster at Sun.COM
Wed Jan 31 03:13:11 PST 2007


Paul van der Zwan wrote:
> 
> On 31-jan-2007, at 11:41, Casper.Dik at Sun.COM wrote:
> 
>>
>>>
>>> At the moment I am attending course SA327 ( dtrace)
>>> and I am doing the excercises on my macbook running  b56 on parallels.
>>>
>>> In one excercise we have to list failing system calls using
>>> a predicate: /arg0 == -1/ and this never matches on my system.
>>> When I change the test into / arg0 == 429496729 / it matches.
>>> On a Acer Ferrari running S10u3 the test for -1 works.
>>>
>>> Any idea if this is a bug in b56 or what it might be otherwise ??
>>
>> Are both running 64 bit kernels or is this 32 vs 64 bit?
>>
> 
> 32 bit, and I think I found the problem and answer in the mail archives..
> You have to cat the arg0 on syscall:::return to int. On 64 bit it does not
> matter on 32 bit it definitely does...
> I'll have to file a bug on the training material as all their samples and
> answers are missing the cast.

I don't know ... I looked at random at the manpages for several system 
calls, they all return a signed value. I think the dtrace framework is 
intelligent enough to realise that, and type arg0 accordingly. On my b55 
machine, running 32bit, /arg0 == -1/ works quite OK, so I don't think it's 
a bug in the training material.
I haven't got a 32bit machine running NV b56, so I cannot test the 
behaviour there, but IMO if this has changed, it's not a bug in the 
training material.

just my 2cents
Michael
-- 
Michael Schuster
Sun Microsystems, Inc.


More information about the dtrace-discuss mailing list