有什么方法可以使用在 X86/Linux 上运行的 Valgrind 来检测 ARM 二进制文件?
问问题
1075 次
1 回答
2
不,Valgrind 不会“检测”二进制文件。它在模拟器中运行未修改的二进制文件(好吧,无论如何你都可以这样查看),并在内存访问发生时拦截它们。
因此,Valgrind 是高度特定于体系结构的,在 x86 上运行的 Valgrind 对 ARM 二进制文件没有任何用处。
但是,Valgrind 确实(可能不完整)支持 ARMv7 架构,因此您应该能够在目标设备上运行它并以这种方式分析您的代码。
如果 Valgrind 不能在您的设备上可靠地工作(内存不足?太慢?),那么您可以尝试在 QEMU(用户模式)内的 x86 机器上运行它。在 Ubuntu(可能还有其他发行版)上,安装 QEMU 包就足够了,然后 ARM 二进制文件将通过翻译神奇地运行,就像它们在目标上一样,无需进一步努力(尽管动态链接的二进制文件很难找到它们的库)。然后你可以在你的开发机器上运行 Valgrind for ARM 和你自己的代码。
于 2013-11-11T12:28:53.520 回答