|
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>
|
|
From: Cerion Armour-B. <ce...@op...> - 2006-09-14 07:57:45
|
Hi, Valgrind doesn't yet implement isel. But it's only a performance instruction - can you perhaps disable it's use? Note the e500 SPE isn't yet supported. The new instructions aren't implemented, and I don't yet know what (if any) ABI changes need to be taken into account... anyone? Cerion On Wednesday 13 September 2006 23:45, Linder, Steve wrote: > 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. > > Any help that I can get on this would be appreciated. > > Steve Linder > > > Configure: > ./configure --host=powerpc-gnu-linux --build=i686-linux > --target=powerpc-gnu-linux --enable-only32bit --disable-tls > --disable-dependency-tracking --with-cpu=8540 --without-x \ > CC=/opt/windriver/gnu/3.4.4-wrlinux-1.2/x86-linux2/bin/powerpc-wrs-linux > -gnu-e500-gpp-gcc \ > LDFLAGS=-L/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-p > owerpc/lib \ > CPPFLAGS=-I/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux- > powerpc/include \ > CPP='/opt/windriver/gnu/3.4.4-wrlinux-1.2/x86-linux2/bin/powerpc-wrs-lin > ux-gnu-e500-gpp-gcc -E' > > Make: > make > DESTDIR=/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-pow > erpc/lib \ > libdir=/opt/windriver/wrlinux-1.2/target-libs/gpp/powerpc-wrs-linux-powe > rpc/lib > > Execution: > juventus34> valgrind -v ls > ==2135== Memcheck, a memory error detector. > ==2135== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al. > ==2135== Using LibVEX rev 1606, a library for dynamic binary > translation. > ==2135== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP. > ==2135== Using valgrind-3.2.0, a dynamic binary instrumentation > framework. > ==2135== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al. > ==2135== > --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) > ==2135== valgrind: Unrecognised instruction at address 0x40022DC. > ==2135== Your program just tried to execute an instruction that Valgrind > ==2135== did not recognise. There are two possible reasons for this. > ==2135== 1. Your program has a bug and erroneously jumped to a non-code > ==2135== location. If you are running Memcheck and you just saw a > ==2135== warning about a bad jump, it's probably your program's > fault. > ==2135== 2. The instruction is legitimate but Valgrind doesn't handle > it, > ==2135== i.e. it's Valgrind's fault. If you think this is the case > or > ==2135== you are not sure, please let us know and we'll try to fix > it. > ==2135== Either way, Valgrind will now raise a SIGILL signal which will > ==2135== probably kill your program. > ==2135== > ==2135== Process terminating with default action of signal 4 (SIGILL): > dumping core > ==2135== Illegal opcode at address 0x40022DC > ==2135== at 0x40022DC: (within /lib/ld-2.3.4.so) > ==2135== by 0x4011328: (within /lib/ld-2.3.4.so) > ==2135== > ==2135== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 0 from 0) > ==2135== malloc/free: in use at exit: 0 bytes in 0 blocks. > ==2135== malloc/free: 0 allocs, 0 frees, 0 bytes allocated. > ==2135== > ==2135== 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 = 6 (96k, 0M) > --2135-- memcheck: SMs: n_deissued = 0 (0k, 0M) > --2135-- memcheck: SMs: max_noaccess = 65535 (1048560k, 1023M) > --2135-- memcheck: SMs: max_undefined = 0 (0k, 0M) > --2135-- memcheck: SMs: max_defined = 2 (32k, 0M) > --2135-- memcheck: SMs: max_non_DSM = 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> > > > ------------------------------------------------------------------------- > Using Tomcat but need to do more? Need to support web services, security? > Get stuff done quickly with pre-integrated technology to make your job > easier Download IBM WebSphere Application Server v.1.0.1 based on Apache > Geronimo > http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 > _______________________________________________ > Valgrind-users mailing list > Val...@li... > https://lists.sourceforge.net/lists/listinfo/valgrind-users -- Cerion Armour-Brown OpenWorks LLP http://www.open-works.co.uk |