1

我正在使用Ubuntu 18.04VM 并试图找到一种valgrind检查arm-Linux可执行文件的方法。我试过用本地编译,gcc但遇到了一些问题。可执行文件由项目提供的 Makefile 创建。我已经尝试过linaro emulator,按照在线指南进行操作,但遇到了多个问题,我在网上搜索了每个问题的解决方案,但都失败了。我有什么办法valgrind

只要我可以检查程序是否存在内存泄漏,任何方式都可以。我现在执行 valgrind 时得到的结果:

valgrind:无法为平台“arm-linux”启动工具“memcheck”:没有这样的文件或目录

它自己的文件是 fyi:nrf52832_xxaa.out:ELF 32 位 LSB 可执行文件,ARM,EABI5 版本 1 (SYSV),静态链接,带有 debug_info,未剥离

我已经在多个帖子中搜索了解决方案,但找不到任何解决方案。

4

2 回答 2

2

交叉编译 valgrind,并在目标上执行。没有其他方法。甚至不能使用 qemu 来执行 valgrind。

于 2020-01-13T15:14:50.793 回答
0

必须在设备上运行可执行文件。请考虑从https://packages.debian.org/search?keywords=valgrind为您的 arch 示例下载预编译包的选项,遵循强制性依赖项,并将所有内容安装在您的嵌入式设备上。我使用根据已安装的 libc 版本来确定版本。

于 2020-01-16T20:04:59.657 回答