valgrind在3.8.0後開始支援mips,從3.9.0開始支援mips dsp ase。但release上3.9.0 使用mips編譯出來會在linux
VG_(machine_get_hwcaps)(void) __asm__ __volatile__(.word 0x7d095351); /*precr.qb.ph t2,t0,t1*/
檢測CPU的時候使用DSP ASE的指令而致使在報錯誤指令crashshell
所以要在通常的mips上使用valgrind,須要使用3.8.0版本code
1.下載http://valgrind.org/downloads/valgrind-3.8.0.tar.bz2ip
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裏面有提到get
因爲valgrind很是吃內存,所以並不太適合內存有限的嵌入式上使用,我原本是打算編譯出來給公司用的,不過編譯出來後放到公司的平臺上跑開發的應用內存不夠,產品卡成本,連開發板的內存都是卡了的。網上看valgrind使用的內存是監控程序的2倍。
編譯器