如何为ARMv5平台构建Valgrind?

时间:2015-07-13 12:19:57

标签: debugging arm valgrind cross-compiling

我需要调试一个多线程程序,它不断抛出可怕的分段错误,我选择 Valgrind 来执行此操作。但问题是代码是交叉编译的,并在ARMv5机器上运行。我尝试为该架构构建Valgrind,但configure失败,因为该版本不受支持:

$ CC=arm-linux-gnueabi-gcc  ./configure --prefix=/opt/valgrind     \
  --host=armv5-none-linux-gnueabi --target=arm-none-linux-gnueabi  \
  --build=i386-ubuntu-linux

(...)
checking for a supported CPU... no (armv5)
configure: error: Unsupported host architecture. Sorry

有没有办法解决这个问题?是否有可能以某种方式编译ARMv7(我读完是完全支持的),并在我的平台中使用它?我找到了this question,但两年前就被问过,答案指向旧版Valgrind的补丁。

2 个答案:

答案 0 :(得分:5)

如果您为ARMv5指令集CPU编译valgrind,则无法运行它,因为valgrind仅在ARMv7 CPU上运行。

Valgrind cross compilation for ARMv5tel

自从"版本3。6。0(2010年10月21日)"

以来,似乎增加了对ARM的支持

http://valgrind.org/docs/manual/dist.news.html

但它必须在ARMv7 CPU上运行,即使它支持较旧的指令集。

我为一个ARMv5编译了valgrind并且它没有运行,它抛出"非法指令"。

https://community.nxp.com/message/863066?commentID=863066#comment-863066

答案 1 :(得分:0)

在配置文件中将“armv7 *”更改为“arm”,然后编译将成功。