|
From: Linder, S. <Ste...@xe...> - 2006-09-13 21:46:16
|
Hi,
I am encountering an illegal instruction when executing valgrind-3.2.0.
See below for the configure, make and execution information. I am cross
compiling on an x86 system for the PowerPC target. The target system is
based on 8541E embedded power pc with an e500 core that is running linux
2.6.10.
The illegal instruction that I am running into is the isel instruction,
an e500 core instruction. I am guessing that I have not configured
valgrind correctly for the ppc e500 core. =20
Any help that I can get on this would be appreciated.
Steve Linder
Configure:
./configure --host=3Dpowerpc-gnu-linux --build=3Di686-linux
--target=3Dpowerpc-gnu-linux --enable-only32bit --disable-tls
--disable-dependency-tracking --with-cpu=3D8540 --without-x \
CC=3D/opt/windriver/gnu/3.4.4-wrlinux-1.2/x86-linux2/bin/powerpc-wrs-linu=
x
-gnu-e500-gpp-gcc \
LDFLAGS=3D-L/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-=
p
owerpc/lib \
CPPFLAGS=3D-I/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux=
-
powerpc/include \
CPP=3D'/opt/windriver/gnu/3.4.4-wrlinux-1.2/x86-linux2/bin/powerpc-wrs-li=
n
ux-gnu-e500-gpp-gcc -E'
Make:
make
DESTDIR=3D/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-po=
w
erpc/lib \
libdir=3D/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-pow=
e
rpc/lib
Execution:
juventus34> valgrind -v ls
=3D=3D2135=3D=3D Memcheck, a memory error detector.
=3D=3D2135=3D=3D Copyright (C) 2002-2006, and GNU GPL'd, by Julian =
Seward et al.
=3D=3D2135=3D=3D Using LibVEX rev 1606, a library for dynamic binary
translation.
=3D=3D2135=3D=3D Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks =
LLP.
=3D=3D2135=3D=3D Using valgrind-3.2.0, a dynamic binary instrumentation
framework.
=3D=3D2135=3D=3D Copyright (C) 2000-2006, and GNU GPL'd, by Julian =
Seward et al.
=3D=3D2135=3D=3D=20
--2135-- Command line
--2135-- ls
--2135-- Startup, with flags:
--2135-- -v
--2135-- Contents of /proc/version:
--2135-- Linux version 2.6.10-gpp (vobadm@linuxcom-00) (gcc version
3.4.4 (Wind River Linux)) #1 Fri Jun 2 01:31:26 EDT 2006
--2135-- Arch and hwcaps: PPC32, ppc32-int-flt-FX-GX
--2135-- Valgrind library directory:
/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-powerpc/lib
/valgrind
--2135-- Reading syms from /lib/ld-2.3.4.so (0x4000000)
--2135-- object doesn't have a symbol table
--2135-- Reading syms from /bin/ls (0x10000000)
--2135-- object doesn't have a symbol table
--2135-- Reading syms from /usr/local/lib/valgrind/ppc32-linux/memcheck
(0x38000000)
--2135-- object doesn't have a dynamic symbol table
--2135-- Reading suppressions file:
/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-powerpc/lib
/valgrind/default.supp
disInstr(ppc): unhandled instruction: 0x7C0C561E
primary 31(0x1F), secondary 1566(0x61E)
=3D=3D2135=3D=3D valgrind: Unrecognised instruction at address =
0x40022DC.
=3D=3D2135=3D=3D Your program just tried to execute an instruction that =
Valgrind
=3D=3D2135=3D=3D did not recognise. There are two possible reasons for =
this.
=3D=3D2135=3D=3D 1. Your program has a bug and erroneously jumped to a =
non-code
=3D=3D2135=3D=3D location. If you are running Memcheck and you just =
saw a
=3D=3D2135=3D=3D warning about a bad jump, it's probably your =
program's
fault.
=3D=3D2135=3D=3D 2. The instruction is legitimate but Valgrind doesn't =
handle
it,
=3D=3D2135=3D=3D i.e. it's Valgrind's fault. If you think this is =
the case
or
=3D=3D2135=3D=3D you are not sure, please let us know and we'll try =
to fix
it.
=3D=3D2135=3D=3D Either way, Valgrind will now raise a SIGILL signal =
which will
=3D=3D2135=3D=3D probably kill your program.
=3D=3D2135=3D=3D=20
=3D=3D2135=3D=3D Process terminating with default action of signal 4 =
(SIGILL):
dumping core
=3D=3D2135=3D=3D Illegal opcode at address 0x40022DC
=3D=3D2135=3D=3D at 0x40022DC: (within /lib/ld-2.3.4.so)
=3D=3D2135=3D=3D by 0x4011328: (within /lib/ld-2.3.4.so)
=3D=3D2135=3D=3D=20
=3D=3D2135=3D=3D ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 =
from 0)
=3D=3D2135=3D=3D malloc/free: in use at exit: 0 bytes in 0 blocks.
=3D=3D2135=3D=3D malloc/free: 0 allocs, 0 frees, 0 bytes allocated.
=3D=3D2135=3D=3D=20
=3D=3D2135=3D=3D All heap blocks were freed -- no leaks are possible.
--2135-- memcheck: sanity checks: 0 cheap, 1 expensive
--2135-- memcheck: auxmaps: 0 auxmap entries (0k, 0M) in use
--2135-- memcheck: auxmaps: 0 searches, 0 comparisons
--2135-- memcheck: SMs: n_issued =3D 6 (96k, 0M)
--2135-- memcheck: SMs: n_deissued =3D 0 (0k, 0M)
--2135-- memcheck: SMs: max_noaccess =3D 65535 (1048560k, 1023M)
--2135-- memcheck: SMs: max_undefined =3D 0 (0k, 0M)
--2135-- memcheck: SMs: max_defined =3D 2 (32k, 0M)
--2135-- memcheck: SMs: max_non_DSM =3D 6 (96k, 0M)
--2135-- memcheck: max sec V bit nodes: 0 (0k, 0M)
--2135-- memcheck: set_sec_vbits8 calls: 0 (new: 0, updates: 0)
--2135-- memcheck: max shadow mem size: 400k, 0M
--2135-- translate: fast SP updates identified: 1 ( 25.0%)
--2135-- translate: generic_known SP updates identified: 3 ( 75.0%)
--2135-- translate: generic_unknown SP updates identified: 0 ( 0.0%)
--2135-- tt/tc: 88 tt lookups requiring 87 probes
--2135-- tt/tc: 88 fast-cache updates, 2 flushes
--2135-- transtab: new 44 (1,260 -> 20,960; ratio 166:10) [0
scs]
--2135-- transtab: dumped 0 (0 -> ??)
--2135-- transtab: discarded 0 (0 -> ??)
--2135-- scheduler: 97 jumps (bb entries).
--2135-- scheduler: 0/48 major/minor sched events.
--2135-- sanity: 1 cheap, 1 expensive checks.
--2135-- exectx: 30,011 lists, 0 contexts (avg 0 per list)
--2135-- exectx: 0 searches, 0 full compares (0 per 1000)
--2135-- exectx: 0 cmp2, 0 cmp4, 0 cmpAll
Illegal instruction
juventus34>
|