strace on FC2 with 64 bit lseek

Maciej Żenczykowski maze at cela.pl
Mon Oct 18 02:22:37 UTC 2004


Hi!

on 32bit x86 the 64bit _llseek seems to be badly parsed by strace.

lseek64(fd,0x80000000ULL,SEEK_SET);

results in a strace:

_llseek(3, 18446744071562067968, [2147483648], SEEK_SET) = 0

instead of:

_llseek(3, 2147483648, [2147483648], SEEK_SET) = 0

note that 18446744071562067968 == 0xFFFFFFFF80000000,
so basically somehow 0x80000000 is turning into 0xFFFFFFFF80000000.

Can anyone confirm this - or am I totally lost here?

As far as I can tell the problem is definetely with strace, passing in the 
correct parameters by hand via asm into the kernel still results in a 
wrong strace, and the kernel accepts the values and allows the seek, and 
returns the expected value as the result.

Cheers,
MaZe.




More information about the test mailing list