利用valgrind检测hisi3536平台内存泄露

参考:Valgrind memcheck介绍以及在海思himix410平台的安装使用_baiyu33的博客-CSDN博客

一.valgrind下载

本文使用的版本是3.19.0(2022年10月25日下载)

源码地址:https://www.linuxfromscratch.org/blfs/view/svn/general/valgrind.html

或者https://download.csdn.net/download/bingbaobei/86824348下载

二.编译安装

把源码压缩包放到编译服务器上

1.解压下载下来的源码

tar -xvf valgrind-3.19.0.tar.bz2 

cd valgrind-3.19.0 进入valgrind-3.19.0目录下

2.生成configure文件(略,因为直接可以看到configure文件,我略过了这个步骤)

sudo ./autogen.sh(略)

3.配置交叉编译环境环境变量

我要排查的是hisi3536,使用的工具链为arm-hisiv400-linux-的,所以配置configure如下

export CC=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/arm-hisiv400-linux-gnueabi-gcc

export CXX=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/arm-hisiv400-linux-gnueabi-g++ 

 export CPP=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/arm-hisiv400-linux-gnueabi-cpp

export AR=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/arm-hisiv400-linux-gnueabi-ar

export LD=/opt/hisi-linux/x86-arm/arm-hisiv400-linux/bin/arm-hisiv400-linux-gnueabi-ld

export DEVBOARD_VALGRIND_DIR=/tmp/mxyvalgrind

export HOST_INSTALL_DIR=/tmp/mxyvalgrind

4.修改configure(此步不可跳过,否则会出现错误重新来)

修改 configure 文件: hisiv400是 armv7l 架构,可通过连接开发板后输入 uname -m 获知. 在 configure 文件里找到 armv7*) 改为 armv7*|arm).

5执行编译

./configure --prefix=$DEVBOARD_VALGRIND_DIR --target=arm-hisiv400-linux --host=arm-hisiv400-linux --program-prefix=hisi-

make

make install

6.拷贝

挂载到对应的hisi平台,把/tmp/mxyvalgrind 拷贝到开发板的/tmp目录(此处注意目录对应一样,否则会出现错误重新来)

7.执行

/tmp/mxyvalgrind/bin/hisi-valgrind --tool=memcheck --leak-check=full --track-origins=yes --show-reachable=yes --log-file=memchk.log ./bin/XXX.out

大功告成

三 常见错误

1.configure: error: Unsupported host architecture. Sorry

解决方案:修改 configure 文件: himix410 是 armv7l 架构,可通过连接开发板后输入 uname -m 获知. 在 configure 文件里找到 armv7*) 改为 armv7*|arm).

2.valgrind: failed to start tool 'memcheck' for platform 'arm-linux': No such file or directory

--prefix 后面的安装目录要和开发板平台目录一致(标红的地方,着重一下)

3../bin/XXX.out error while loading shared libraries: xxx.so: cannot open shared object file: No such file or directory

find / -name  xxx.so 找到应用程序依赖的库路径,LD_LIBRARY_PATH=xxx:$LD_LIBRARY_PATH添加到LD_LIBRARY_PATH中即可

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值