使用Valgrind在X86 / Linux机器上检测ARM二进制文件

时间:2013-11-11 05:27:02

标签: arm valgrind

有没有办法使用在X86 / Linux上运行的Valgrind来检测ARM二进制文件?

1 个答案:

答案 0 :(得分:2)

不,Valgrind没有“检测”二进制文件。它在模拟器中运行未修改的二进制文件(好吧,无论如何都可以像这样查看它),并在发生时拦截内存访问。

因此,Valgrind是高度特定于体系结构的,并且在x86上运行的Valgrind对ARM二进制文件没有任何用处。

但是,Valgrind确实有(可能不完整)support for the ARMv7 architecture,所以你应该能够在你的目标设备上运行它并以这种方式分析你的代码。

如果Valgrind无法与您的设备可靠地工作(没有足够的内存?太慢?)那么您可以尝试在QEMU内的x86机器上运行它(用户模式)。在Ubuntu(可能还有其他发行版)上安装QEMU包就足够了,然后ARM二进制文件将通过翻译神奇地运行,就好像它们在目标上一样,没有进一步的努力(尽管动态链接的二进制文件很难找到它们的库)。然后,您可以在开发计算机上运行Valgrind for ARM和您自己的代码。