|
From: Julian C. <jul...@un...> - 2013-11-27 12:05:19
|
Hi, First off thanks for the amazing work on valgrind and bringing this excellent tool to mips :) I've just found out that the mips port was completed a while ago and have tried to use it on our embedded devices. It works fine on basic Linux commands like 'ls' and 'pwd', but as soon as I use a multi-threaded program (one of our own) I get an unhandled instruction error that looks like this: vex mips->IR: unhandled instruction bytes: 0x0 0x0 0x0 0xE ==3262== valgrind: Unrecognised instruction at address 0x490fc04. ==3262== at 0x490FC04: ??? (in /lib/libstdc++.so.6.0.3) ==3262== by 0x490FBC8: ??? (in /lib/libstdc++.so.6.0.3) .... ==3262== Process terminating with default action of signal 4 (SIGILL): dumping core ==3262== Illegal opcode at address 0x490FC04 ==3262== at 0x490FC04: ??? (in /lib/libstdc++.so.6.0.3) ==3262== by 0x490FBC8: ??? (in /lib/libstdc++.so.6.0.3) I built and configured valgrind with the following configure line to match our the options we use to build for mips: ./configure --prefix=<my-valgrind-install-directory> CFLAGS="-mips32r2 -mtune=24kec -mabi=32 -mlong-calls" --with-pagesize=4 --host-mips-linux I also patched the source to disable large file support to match our environment - http://git.buildroot.net/buildroot/plain/package/valgrind/valgrind- largefile.patch We are using uclibc 0.9.28 running on Linux kernel 3.4.52. The MIPS processor is a MIPS 24Kc and the GCC toolchain version is gcc 3.4.4 I am at the limit of my knowledge with debugging this problem. Any help or guidance you can give would be greatly appreciated. Many thanks, Julian |