in writing a small testcase for stat64, i also poked some other funcs and they 
fail too:

$ cat test.c
#define _GNU_SOURCE
#define _FILE_OFFSET_BITS 64
#define _LARGEFILE_SOURCE
#define _LARGEFILE64_SOURCE

#include <fcntl.h>
#include <stdio.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
int main(int argc, char *argv[]) {
        struct stat st;
        truncate(argv[1], (unsigned long long)10 * 1024 * 1024 * 1024);
        ftruncate(-1, (unsigned long long)10 * 1024 * 1024 * 1024);
        stat(argv[1], &st);
        printf("%llu\n", (unsigned long long)st.st_size);
        readahead(-1, st.st_size, 1);
        return 0;
}

$ gcc test.c -m32 -o a.out32 -Wall 
$ ./strace  -v ./a.out32 f
...
[ Process PID=3083 runs in 32 bit mode. ]
...
truncate64("f", 2147483648)             = 0
ftruncate64(-1, 2147483648)             = -1 EBADF (Bad file descriptor)
readahead(-1, 4289292220, 2)            = -1 EBADF (Bad file descriptor)
...

but if i use strace compiled for x86_64 (64bit), it decodes fine.
-mike

Attachment: signature.asc
Description: This is a digitally signed message part.

------------------------------------------------------------------------------
Introducing AppDynamics Lite, a free troubleshooting tool for Java/.NET
Get 100% visibility into your production application - at no cost.
Code-level diagnostics for performance bottlenecks with <2% overhead
Download for free and get started troubleshooting in minutes.
http://p.sf.net/sfu/appdyn_d2d_ap1
_______________________________________________
Strace-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/strace-devel

Reply via email to