首页
社区
课程
招聘
[求助]valgrind 在 ARM 上的交叉编译并使用 qemu-arm 运行出错
发表于: 2021-7-13 14:35 9142

[求助]valgrind 在 ARM 上的交叉编译并使用 qemu-arm 运行出错

2021-7-13 14:35
9142

环境:

  • ubuntu 18.04
  • qemu 5.2.0
  • arm-linux-gnueabi-gcc 7.5.0

编译 valgrind 想在 arm 平台上运行,运行环境是在 qemu 模拟器,但是会出现报错

1
2
$ qemu-arm ./bin/valgrind
valgrind: failed to start tool 'memcheck' for platform 'arm-linux': Exec format error

截图:

strace 查看

 

具体使用的编译指令是

1
2
3
./configure --host=arm-linux CC=arm-linux-gnueabi-gcc --prefix=/opt/valgrind
make
sudo make install

使用的qemu 版本是 5.2.0

1
2
3
$ qemu-arm -version
qemu-arm version 5.2.0
Copyright (c) 2003-2020 Fabrice Bellard and the QEMU Project developers

查看了一下 valgrind 和 memcheck-arm-linux 的文件类型,发现是一样的,期间还尝试过静态编译加了 CFLAGS='-static' 参数,问题依然存在。在 qemu 系统态下运行也存在这个问题。唯一在使用 qemu 2.1 版本时能成功运行 valgrind,但我其它的程序需要使用 qemu 5 才能跑起来~

1
2
3
4
5
6
$ file ./bin/valgrind
./bin/valgrind: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, for GNU/Linux 3.2.0, BuildID[sha1]=aad29d7b7e698a940a1b32fbedf98009b9da113d, with debug_info, not stripped
cuc@cuc-VirtualBox:/opt/valgrind
 
$ file "/opt/valgrind/libexec/valgrind/memcheck-arm-linux"
/opt/valgrind/libexec/valgrind/memcheck-arm-linux: ELF 32-bit LSB executable, ARM, EABI5 version 1 (SYSV), statically linked, BuildID[sha1]=826d60ef76dcbf0994389a43d0db7e83a8527459, with debug_info, not stripped

没有其它排错思路了

 

呜呜呜~求求各路大神帮我看看什么问题


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2021-7-13 18:22 被cloud0606_f编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//