|
From: Oriol P. <aut...@gm...> - 2007-07-26 10:22:02
|
Hi, I'm writing a tool for valgrind and I found a problem with powerpc64. I can reproduce it with a simple tool file like ff_trace.c file attached. The problem is on the line "fFlen = 10000;". If I comment this line the problem disappears. If I run a 32 bits program the problem disappears. It I run a 64 bits program the problem appears. Valgrind crashes with a segmentation fault. I guess the problem is on global variable write from a instrumentation function inserted in a basic block on powerpc 64. I executed with the line: ~/opt/bin/valgrind --wait-for-gdb=yes --trace-notbelow=0 --trace-flags=11111111 --tool=fftrace ~/helloworld64 The output file (output.txt) is attached. The interesting lines are here: ==8627== ==8627== Process terminating with default action of signal 11 (SIGSEGV) ==8627== Bad permissions for mapped region at address 0x3828CAB8 ==8627== at 0x40053E0: _start (in /readonly/lib64/ld-2.3.3.so) ==8627== Bad permissions for mapped region at address 0x3828CAB8... I extracted the mappings from /proc/<pid>/maps. The file maps.txt is attached. The next entry in the maps: 38000000-382a9000 r-xp 00000000 00:13 12399595 /gpfs/home/bsc18/bsc18799/opt/lib/valgrind/ppc64-linux/fftrace Tells that there is no write permission at region 38000000-382a9000, and 0x3828CAB8 is on this region. I don't know if it is the problem. Thanks, Oriol |