我需要调试一个多线程程序,它不断抛出可怕的分段错误,我选择了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(我读到它是完全支持的),并在我的平台上使用它?我发现了这个问题,但它是两年前问的,答案指向旧版本的Valgrind补丁。
如果要为ARMv5指令集CPU编译valgrind,则不能运行它,因为valgrind只能在ARMv7 CPU上运行。
ARMv5tel的Valgrind交叉编译
ARM支持似乎从"Release 3.6.0(2010年10月21日)"开始添加。:
http://valgrind.org/docs/manual/dist.news.html但是它必须在ARMv7 CPU上运行,即使它支持旧的指令集。
我为ARMv5编译了valgrind,它不运行,它抛出"非法指令"。
https://community.nxp.com/message/863066?commentID=863066评论- 863066
在配置文件中将"armv7*"更改为"arm",那么您的编译将成功。