From: Jan K. <jan...@re...> - 2007-08-05 22:04:25
Attachments:
strace-stat64.patch
|
Hi, currently the stat64() syscall is not printed for i386 tracees on x86_64. While I would expect it should affect even i386-on-ia64 it works there for me without any patch. /* * Linux x86_64 has unified `struct stat' but its i386 biarch needs * `struct stat64'. Its <asm-i386/stat.h> definition expects 32-bit `long'. * <linux/include/asm-x86_64/ia32.h> is not in the public includes set. ... Testcase: echo -e '#include <sys/stat.h>\nint main (void) { struct stat statbuf; stat ("/proc/self/exe", &statbuf); return 0; }' >/tmp/statself.c;gcc -m32 -o /tmp/statself32 /tmp/statself.c -ggdb2 -Wall;strace -v /tmp/statself32 2>&1|tail|grep ^stat reports stat64(0x80484f0, 0xffb990b8) = 0 while it should report stat64("/proc/self/exe", {st_dev=makedev(8, 1), st_ino=4910638, st_mode=S_IFREG|0755, st_nlink=1, st_uid=502, st_gid=502, st_blksize=4096, st_blocks=16, st_size=6825, st_atime=2007/08/05-23:56:21, st_mtime=2007/08/05-23:56:21, st_ctime=2007/08/05-23:56:21}) = 0 Regards, Jan |