|
From: WANG Q. <Qua...@al...> - 2013-05-08 06:48:04
|
Hi,
When we try to use valgrind on our board(cpu-mips, os-linux, clib-glibc), but met with some problem.
Please check if you met such problem before? Any suggestions?
Thanks!
CPU Info:
#cat /proc/cpuinfo
Processor : ARMv7 Processor rev 0 (v7l)
BogoMIPS : 1297.61
Features : swp half thumb fastmult edsp
CPU implementer : 0x41
CPU architecture: 7
CPU variant : 0x3
CPU part : 0xc09
CPU revision : 0
Hardware : hsan
Revision : 0000
Serial : 0000000000000000
GCC Info:
mips_74k_softfp-target-linux-gnu-gcc --verbose
Using built-in specs.
Target: mips-wrs-linux-gnu
Configured with: /scratch/joseph/wrs/4.4a/src/gcc-4.4-wrs/configure --build=i686-pc-linux-gnu --host=i686-pc-linux-gnu --target=mips-wrs-linux-gnu --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-float=soft --with-mips-plt --with-arch-32=4kc --with-arch-64=5kf --with-gnu-as --with-gnu-ld --with-specs='%{save-temps: -fverbose-asm} %{O2:%{!fno-remove-local-statics: -fremove-local-statics}} %{O*:%{O|O0|O1|O2|Os:;:%{!fno-remove-local-statics: -fremove-local-statics}}}' --enable-languages=c,c++ --enable-shared --disable-lto --enable-symvers=gnu --enable-__cxa_atexit --with-pkgversion='Wind River Linux Sourcery G++ 4.4a-323' --wit...@wi... --disable-nls --prefix=/opt/windriver/wrlinux/mips --with-sysroot=/opt/windriver/wrlinux/mips/mips-wrs-linux-gnu/libc --with-build-sysroot=/scratch/joseph/wrs/4.4a/mips/install/mips-wrs-linux-gnu/libc --with-gmp=/scratch/joseph/wrs/4.4a/mips/obj/host-libs-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu/usr --with-mpfr=/scratch/joseph/wrs/4.4a/mips/obj/host-libs-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu/usr --with-ppl=/scratch/joseph/wrs/4.4a/mips/obj/host-libs-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu/usr --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --with-cloog=/scratch/joseph/wrs/4.4a/mips/obj/host-libs-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu/usr --with-libelf=/scratch/joseph/wrs/4.4a/mips/obj/host-libs-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu/usr --disable-libgomp --with-license=/scratch/joseph/wrs/4.4a/mips/obj/host-libs-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu/usr --with-csl-license-version=20101201 --with-csl-license-feature=gcc_MIPS_Wind_River_Linux --enable-poison-system-directories --with-debug-prefix-map='/scratch/joseph/wrs/4.4a/mips/install=/opt/windriver/wrlinux/mips /scratch/joseph/wrs/4.4a/src/gcc-4.4-wrs=/opt/windriver/wrlinux/mips/mips-wrs-linux-gnu/src/gcc /scratch/joseph/wrs/4.4a/mips/obj/gcc-4.4a-323-mips-wrs-linux-gnu-i686-pc-linux-gnu=/opt/windriver/wrlinux/mips/mips-wrs-linux-gnu/src/generated/gcc' --with-build-time-tools=/scratch/joseph/wrs/4.4a/mips/install/mips-wrs-linux-gnu/bin --with-build-time-tools=/scratch/joseph/wrs/4.4a/mips/install/mips-wrs-linux-gnu/bin
Thread model: posix
gcc version 4.4.1 (Wind River Linux Sourcery G++ 4.4a-323)
Crash Log1(The application was linked as static):
./valgrind ./test
==3269== Memcheck, a memory error detector
==3269== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==3269== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==3269== Command: ./test
==3269==
==3269== valgrind: Unrecognised instruction at address 0x40c038.
==3269== at 0x40C038: _dl_aux_init (in /tmp/wqf/Install/bin/test)
==3269== by 0x400400: (below main) (in /tmp/wqf/Install/bin/test)
==3269== Your program just tried to execute an instruction that Valgrind
==3269== did not recognise. There are two possible reasons for this.
==3269== 1. Your program has a bug and erroneously jumped to a non-code
==3269== location. If you are running Memcheck and you just saw a
==3269== warning about a bad jump, it's probably your program's fault.
==3269== 2. The instruction is legitimate but Valgrind doesn't handle it,
==3269== i.e. it's Valgrind's fault. If you think this is the case or
==3269== you are not sure, please let us know and we'll try to fix it.
==3269== Either way, Valgrind will now raise a SIGILL signal which will
==3269== probably kill your program.
==3269==
==3269== Process terminating with default action of signal 4 (SIGILL)
==3269== Illegal opcode at address 0x40C038
==3269== at 0x40C038: _dl_aux_init (in /tmp/wqf/Install/bin/test)
==3269== by 0x400400: (below main) (in /tmp/wqf/Install/bin/test)
==3269==
==3269== HEAP SUMMARY:
==3269== in use at exit: 0 bytes in 0 blocks
==3269== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==3269==
==3269== All heap blocks were freed -- no leaks are possible
==3269==
==3269== For counts of detected and suppressed errors, rerun with: -v
==3269== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Illegal instruction
Crash Log2(The application was linked as dynamic):
./valgrind ../../../a.out
==4441== Memcheck, a memory error detector
==4441== Copyright (C) 2002-2012, and GNU GPL'd, by Julian Seward et al.
==4441== Using Valgrind-3.8.1 and LibVEX; rerun with -h for copyright info
==4441== Command: ../../../a.out
==4441==
==4441== valgrind: Unrecognised instruction at address 0x4016fd8.
==4441== at 0x4016FD8: ??? (in /lib/ld-2.11.1.so)
==4441== by 0x4000E5C: ??? (in /lib/ld-2.11.1.so)
==4441== Your program just tried to execute an instruction that Valgrind
==4441== did not recognise. There are two possible reasons for this.
==4441== 1. Your program has a bug and erroneously jumped to a non-code
==4441== location. If you are running Memcheck and you just saw a
==4441== warning about a bad jump, it's probably your program's fault.
==4441== 2. The instruction is legitimate but Valgrind doesn't handle it,
==4441== i.e. it's Valgrind's fault. If you think this is the case or
==4441== you are not sure, please let us know and we'll try to fix it.
==4441== Either way, Valgrind will now raise a SIGILL signal which will
==4441== probably kill your program.
==4441==
==4441== Process terminating with default action of signal 4 (SIGILL)
==4441== Illegal opcode at address 0x4016FD8
==4441== at 0x4016FD8: ??? (in /lib/ld-2.11.1.so)
==4441== by 0x4000E5C: ??? (in /lib/ld-2.11.1.so)
==4441==
==4441== HEAP SUMMARY:
==4441== in use at exit: 0 bytes in 0 blocks
==4441== total heap usage: 0 allocs, 0 frees, 0 bytes allocated
==4441==
==4441== All heap blocks were freed -- no leaks are possible
==4441==
==4441== For counts of detected and suppressed errors, rerun with: -v
==4441== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0)
Illegal instruction
|