交叉编译mips valgrind

valgrind在3.8.0后开始支援mips,从3.9.0开始支援mips dsp ase。但release上3.9.0 使用mips编译出来会在

VG_(machine_get_hwcaps)(void)

__asm__ __volatile__(.word 0x7d095351);    /*precr.qb.ph t2,t0,t1*/

检测CPU的时候使用DSP ASE的指令而导致在报错误指令crash

因此要在一般的mips上使用valgrind,需要使用3.8.0版本

1.下载http://valgrind.org/downloads/valgrind-3.8.0.tar.bz2

2.编译,在README.mips中有详细说明,简要如下  

 ./configure --host=mips-linux-gnu --prefix=<path_to_install_directory> CFLAGS="-mips32r2 -mplt -EL"
make install -j 8

3.编译注意事项:

    a. mips内核大小端是可配置的,需要根据使用的芯片的大小端,配置编译选项,比如我使用的是小端就加入 -EL
    b. gcc编译器版本低于4.5.1,编译选项加入"-mips32r2 -mplt",这个在README.mips里面有提到

由于valgrind非常吃内存,因此并不太适合内存有限的嵌入式上使用,我本来是打算编译出来给公司用的,不过编译出来后放到公司的平台上跑开发的应用内存不够,产品卡成本,连开发板的内存都是卡了的。网上看valgrind使用的内存是监控程序的2倍。

你可能感兴趣的:(交叉编译mips valgrind)