Valgrind ARM(aarch64) 交叉编译、移植与使用

        Valgrind是一款用于内存调试、内存泄漏检测以及性能分析、检测线程错误的软件开发工具。

        Valgrind 是运行在Linux 上的多用途代码剖析和内存调试软件。主要包括Memcheck、Callgrind、Cachegrind 等工具,每个工具都能完成一项任务调试、检测或分析。可以检测内存泄露、线程违例和Cache 的使用等。

        Valgrind 基于仿真方式对程序进行调试,它先于应用程序获取实际处理器的控制权,并在实际处理器的基础上仿真一个虚拟处理器,并使应用程序运行于这个虚拟处理器之上,从而对应用程序的运行进行监视。应用程序并不知道该处理器是虚拟的还是实际的,已经编译成二进制代码的应用程序并不用重新进行编译,Valgrind 直接解释二进制代码使得应用程序基于它运行,从而能够检查内存操作时可能出现的错误。

        所以在Valgrind下运行的程序运行速度要慢得多,而且使用的内存要多得多 - 例如,Memcheck工具下的程序是正常情况的两倍多。因此,最好在性能好的机器上使用Valgrind。

  • 从Valgrind官网下载源代码文件,目前使用的是

valgrind 3.19.0 (tar.bz2)https://sourceware.org/pub/valgrind/valgrind-3.19.0.tar.bz2

  • 解压源代码压缩包: tar -zxvf valgrind-3.19.0.tar.bz2
  • 进入解压的文件夹: cd valgrind-3.19.0
  • 使用configure进行配置:

--host=运行环境

--prefix=用于设置自定义的安装路径

./configure --prefix=~/valgrind-target/ 
--host=aarch64-linux 
CC=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-gcc 
CXX=/opt/gcc-linaro-7.5.0-2019.12-x86_64_aarch64-linux-gnu/bin/aarch64-linux-gnu-g++
  • 编译
sudo make
  • 安装
sudo make install
  • 进入安装路径
cd ~/valgrind-target/libexec/valgrind
  • 拷贝目录下所有"*arm*"和default.supp文件到一个文件夹
  • 烧录该文件夹到核心板root根目录下
  • 打开/etc/profile
vi /etc/profile
  • 在文件最下方添加环境变量
export VALGRIND_LIB=/root/valgrind
  • 命令行拷贝文件夹中的valgrind可执行文件到/usr/bin
cp /root/valgrind/valgrind /usr/bin/.
  • 命令行使用valgrind检测程序test的内存泄漏情况
valgrind ./test

  

  • 6
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值