valgrind交叉编译

版本valgrind-3.17.0.tar
解压 tar -zxf valgrind-3.17.0.tar
cd valgrind-3.17.0

指定交叉编译链,及指定编译32位系统(海思开发板为例hi3516dv100)
mkdir out
./configure --host=arm-hisiv400-linux CC=arm-hisiv400-linux-gcc --prefix=/home/tool_linux/valgrind-3.17.0/out/ --enable-only32bit
make&&make install
out目录下生成bin include lib libexec share
将out目录拷贝到开发本挂载目录
执行命令
/mnt/out/bin/valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes ./a.out
错误
valgrind: failed to start tool ‘memcheck’ for platform ‘amd64-linux’: No such file or directory
解决:指定库路径
export VALGRIND_LIB=/mnt/out/libexec/valgrind
继续执行
/mnt/out/bin/valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes ./a.out
错误
note that if you are debugging a 32 bit process on a valgrind: 64 bit system, you will need a corresponding 32 bit debuginfo valgrind: package
解决:
由于ld-2.16.so和libc-2.16.so为strip版本导致,需要带debuginfo的版本库
直接去gcc编译器的lib目录下拷贝对应文件到开发板 可以通过file看是否srtip过
cd /opt/hisi-linux/x86-arm/arm-hisiv400-linux/target/lib/a7_softfp_neon-vfpv4
file ld-2.16.so看到not stripped
ld-2.16.so: ELF 32-bit LSB shared object, ARM, EABI5 version 1 (SYSV), dynamically linked, with debug_info, not stripped
直接将两个文件拷贝到开发板的/lib目录就好

/mnt/out/bin/valgrind --tool=memcheck --leak-check=full --show-reachable=yes --trace-children=yes ./a.out
执行ok

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值