strace on FC2 with 64 bit lseek

Maciej Żenczykowski maze at cela.pl
Tue Oct 19 20:24:58 UTC 2004


Hi!

It's the standard FC2 strace. 4.5.5-1

And it's not my code - note the kernel returns the proper results after 
the seek (I was seeking on /dev/hda - living dangerously I know, but 
that's what I needed it for anyway) so the proper value obviously reaches 
the kernel - so it must be strace's problem (or a strace/kernel interface 
although that's very unlikely).

strace likely takes two 32 bit registers and combines them into one 64bit 
register improperly, doing something like
  int32 eax, edx;
  int64 value = (int64(edx) << 32) + eax;
(or judging from the printout, using uint64 instead)

Cheers,
MaZe.

On Tue, 19 Oct 2004, Ulrich Drepper wrote:

> -----BEGIN PGP SIGNED MESSAGE-----
> Hash: SHA1
> 
> Maciej Żenczykowski wrote:
> > 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
> 
> Which strace version?  I cannot reproduce this at all here (well, I did
> not have a large enough file so my call fails but this doesn't matter
> since the first two parameters are printed before the syscall).
> 
> Did you compile your code with -W -Wall and fix all problems.  This
> might very well be a bug in your code.
> 
> - --
> ? Ulrich Drepper ? Red Hat, Inc. ? 444 Castro St ? Mountain View, CA ?
> -----BEGIN PGP SIGNATURE-----
> Version: GnuPG v1.2.6 (GNU/Linux)
> 
> iD8DBQFBdXbr2ijCOnn/RHQRAh3eAKC/ESDJlPV6Lg34P4sTEWg5J1xjzQCcDFq3
> MBhtxH6IBKX307cCcbVwpGg=
> =ZnVS
> -----END PGP SIGNATURE-----
> 
> 




More information about the fedora-test-list mailing list