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

使用Valgrind在X86/Linux机器上检测ARM二进制文件,arm,valgrind,Arm,Valgrind,有没有办法使用在X86/Linux上运行的Valgrind来检测ARM二进制文件 不,Valgrind不“插入”二进制文件。它在仿真器中运行未修改的二进制文件(不管怎样,您都可以这样查看),并在内存访问发生时截获它们 因此,Valgrind是高度特定于体系结构的,而在x86上运行的Valgrind对ARM二进制文件没有任何用处 然而,Valgrind确实有(可能是不完整的),所以您应该能够在目标设备上运行它,并以这种方式分析代码 如果Valgrind不能可靠地与您的设备一起工作(内存不足?太慢?

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

不,Valgrind不“插入”二进制文件。它在仿真器中运行未修改的二进制文件(不管怎样,您都可以这样查看),并在内存访问发生时截获它们

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

然而,Valgrind确实有(可能是不完整的),所以您应该能够在目标设备上运行它,并以这种方式分析代码

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