Arm valgrind无法在linux ubuntu 16.04中运行我的32位可执行文件

Arm valgrind无法在linux ubuntu 16.04中运行我的32位可执行文件,arm,valgrind,callgrind,kcachegrind,Arm,Valgrind,Callgrind,Kcachegrind,我试图在我的32位可执行文件(示例)上运行valgrind工具,该文件是在linux Ubuntu主机16.04(64位)下构建的,但它无法运行,错误:错误ELF 示例应用程序构建为在arm32中运行,在我的主机linux机器中交叉编译 这是我运行的命令 valgrind --tool=callgrind ./sample valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit) valgrind: ./sample:

我试图在我的32位可执行文件(示例)上运行valgrind工具,该文件是在linux Ubuntu主机16.04(64位)下构建的,但它无法运行,错误:错误ELF

示例应用程序构建为在arm32中运行,在我的主机linux机器中交叉编译

这是我运行的命令

valgrind --tool=callgrind ./sample
valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
valgrind: ./sample: cannot execute binary file
我运行了memcheck工具,但也失败了

valgrind --tool=memcheck ./updater 
valgrind: wrong ELF executable class (eg. 32-bit instead of 64-bit)
valgrind: ./updater: cannot execute binary file
然后,我导出了valgrind lib路径,但这没有帮助+

$export VALGRIND_LIB="/usr/lib/valgrind"
我找到了我的lib dir,找到了整个列表,找到了callgrind,所有的lib都在那里

callgrind-amd64-linux          
callgrind-x86-linux
我不知道哪里出了问题,也不知道如何在我的可执行文件上使用valgrind


感谢您的帮助。

Valgrind不支持“主机”(您运行Valgrind的地方)的设置 不同于“来宾”(在valgrind下运行的应用程序)

因此,在服务器上无法在Valgrind下运行arm32应用程序 x86/amd64系统

您应该在arm32系统上运行它,并为arm32编译valgrind。 或者,您可以使用android仿真器。 请参阅Valgrind发行版中的README.android和README.android_emulator
更多信息

哦,是的,你说得对。我成功地使用了android仿真器,解决了这个问题。谢谢你的回复。