一些链接

valgrind官网:Valgrind Home

valgrind安装包下载地址:Index of /pub/valgrind

简介

Valgrind是一个用于构建动态分析工具的仪器框架。Valgrind工具可以自动检测许多内存管理和线程错误,并详细分析您的程序。您还可以使用Valgrind构建新工具。

支持的平台

  • x86/Linux: up to and including SSSE3, but not higher -- no SSE4, AVX, AVX2. This target is in maintenance mode now..
  • AMD64/Linux: up to and including AVX2. This is the primary development target and tends to be well supported.
  • PPC32/Linux, PPC64/Linux, PPC64LE/Linux: up to and including Power8.
  • S390X/Linux: supported.
  • ARM/Linux: supported since ARMv7.
  • ARM64/Linux: supported for ARMv8.
  • MIPS32/Linux, MIPS64/Linux: supported.
  • X86/FreeBSD, AMD64/FreeBSD: supported since FreeBSD 11.3.
  • X86/Solaris, AMD64/Solaris, X86/illumos, AMD64/illumos: supported since Solaris 11.
  • X86/Darwin (10.5 to 10.13), AMD64/Darwin (10.5 to 10.13): supported.
  • ARM/Android, ARM64/Android, MIPS32/Android, X86/Android: supported.

另外在Linux上,必须运行内核3.0或更高版本,以及glibc 2.5.X或更高版本。在Mac OS X上,您必须运行10.9.x或更高版本。

主要工具

(1)Memcheck内存错误检测器

(2)Cachegrind缓存和分支预测分析器

(3)Helgrind线程错误检测器

(4)Massif堆分析器。

编译

准备交叉编译工具链

直接用apt-get安装

sudo apt-get install gcc-arm-linux-gnueabihf
sudo apt-get install g++-arm-linux-gnueabihf
sudo apt-get install c++-arm-linux-gnueabihf

也可自行去官网下载压缩包

编译valgrind

下载解压

wget https://sourceware.org/pub/valgrind/valgrind-3.18.1.tar.bz2
tar xvf valgrind-3.18.1.tar.bz2
cd valgrind-3.18.1/

配置

./autogen.sh     # 需要安装automake
vi configure

作如下更改

./configure --host=arm-linux-gnueabihf --target=arm-linux-gnueabihf CC=arm-linux-gnueabihf-gcc CPP=arm-linux-gnueabihf-cpp CXX=arm-linux-gnueabihf-c++ --prefix=$(pwd)/./output/valgrind_3.18#--build: 编译所用的机器的平台
#--host:编译出的可执行文件运行的平台
#--target:编译出来的工具链生成的可执行文件运行的平台,一般在编译gcc、ld等工具的时候才使用

配置成功

编译

make
make install

编译成功

裁切

因为很多开发板内存空间有限,需要进行裁切,选择自己需要的文件。

筛选后等到满足arm开发板的全功能所需文件,也可根据个人需求,对部分功能对应的文件进行选取。

配置arm开发板上的运行环境

使用patchelf工具对测试文件修改interpreter段

因为测试的可执行文件需要依赖not stripped的动态链接库,但是很多开发板上的系统为了节省空间需要对文件进行strip,那么valgrind将无法成功运行测试可执行文件。

所以需要通过一些手段改变可执行文件的interpreter段。比如在编译时指定,或者使用patchelf工具。

下载arm版对应的安装包解压即可直接使用

https://github.com/NixOS/patchelf/releases

patchelf --set-interpreter /data/app/MAINAPP/data/ld-2.15.so ./Hellovalgrind ./Hello

2.15.是ld.so的版本,Hello是待调试的应用名称

至此,valgrind将可以成功使用。

如何移植valgrind到arm开发板相关推荐

  1. 编译ARM平台的 QtEmbedded 的MySQL插件和移植MySQL到ARM开发板

    经过几天的努力,终于交叉编译出了arm平台所需Qt/E的MySQL插件(驱动),其中顺便把MySQL也移植到了mini2410的开发板上. 编译器:arm-linux-gcc(4.3.2) Pc平台: ...

  2. mplayer linux arm,【嵌入式】交叉编译移植 Mplayer 到 ARM开发板

    一.基本信息 1.移植环境 ①:ubuntu16.04 ②:iMX6Q开发板 2.移植所需软件源码 ①:libmad libmad 下载 ②:mplayer mplayer下载 ③:百度网盘下载: 链 ...

  3. java arm_移植java到arm开发板

    1. 在主机linux上安装Oracle Java SE Embedded 下载Oracle Java SE Embedded软件包 本次使用ejdk-8u211-linux-armv6-vfp-hf ...

  4. 移植安装ModBus到ARM开发板

    1.libmodbus官网 2.下载 二.交叉编译 1.解压 2.创建安装目录 3.进入解压的目录 4.配置编译选项 5.编译 6.安装 7.生成动态链接库 三.移植到ARM开发板 1.复制文件到AR ...

  5. [2021]Linux下C语言qrencode二维码生成库的基本使用和ARM开发板移植

    文章目录 一.前言 二.准备所用到的环境以及版本信息 1.Ubuntu和内核版本 2.gcc和g++版本 3.交叉编译gcc和g++版本 4.开发板信息 三.开发环境编译&安装qrencode ...

  6. linux adb arm移植,移植ubuntu core到Arm开发板

    origin: http://blog.csdn.net/kickxxx/article/details/15341079 最初是想把整个ubuntu移植到MX51开发板,因为项目不需要运行桌面系统, ...

  7. 将linux内核烧进arm板,ARM开发板上uClinux内核移植

    <ARM开发板上uClinux内核移植>由会员分享,可在线阅读,更多相关<ARM开发板上uClinux内核移植(19页珍藏版)>请在人人文库网上搜索. 1.纷傲掌秀悸篷益哑檀扬 ...

  8. Openssl移植到ARM开发板

    Openssl移植到ARM开发板 openssl源码下载 源码编译配置 使用生成的库文件 openssl源码下载 openssl源码可以在官网下载:https://www.openssl.org/so ...

  9. arm开发板移植ALSA库与ALSA工具

    目录 首先我们需要下载两个所要用到的库文件(基于Ubuntu) 一:先配置ALSA库文件 1.先解压放到家目录下ALSA的源文件: 2.解压后进去解压得到的文件夹执行以下命令: 3.配置好以后执行 二 ...

最新文章

  1. 你们AI圈儿,已经引起了罗马教皇的警惕
  2. Servlet之Filter过滤器
  3. 文件上传漏洞——DVWA练习
  4. 超图软件打开倾斜摄影数据注意点
  5. Linux IO复用:select、poll、epoll的理解与对比
  6. Windows2003系统无法运行CS游戏的解决方案
  7. oracle 下和 db2的syscat 对应的,oracle db2命令对比(整理中)
  8. java heap 查看_使用VisualVM查看Java Heap Dump
  9. windows server 2003 32位支持8G内存
  10. mybatis 调用 oracle函数_从Oracle到PG 该做的改造工作一个都不能少!
  11. VS2010 C++环境下DLL和LIB文件目录及名称修改
  12. 用积分法求椭圆周长matlab,MATLAB计算积分
  13. Proximity模块管理设备距离传感器,可获取当前设备的接近距离信息,通过plus.proximity可获取设备距离传感管理对象
  14. 俞敏洪:35岁前如何实现自我增值?
  15. 快速了解元宇宙的 7 层产业链
  16. agx 扩展m2的固态硬盘 挂载到/home中
  17. jxl导出excel(合并单元格)
  18. Java常用消息摘要算法-MD5
  19. 分享几个 Github 镜像网站(亲测可用)
  20. 力扣每日一题2021-12-24中等题:吃苹果的最大数目

热门文章

  1. 解决:vue项目npm run build 打包后 :src路径里面的本地图片找不到。
  2. YbtOJ——递推算法【例题4】传球游戏
  3. 微信 Mac 版 3.1.0 内测:支持发表朋友圈、浏览朋友圈相册
  4. 《软件测试的艺术》阅读心得
  5. 人工智能算法在外卖配送系统中的应用和前景
  6. Javasript实现照片墙
  7. 单细胞测序探索小鼠胚胎时期脑组织的发育
  8. 计算机教程.pdf,中文电脑基础教程.pdf
  9. 低代码灵魂三问:熬不住了?骗不了了?技术不行了?
  10. 应用统计学和计算机哪个好学,东北大学应用统计学专业要学哪些课程,好学吗?...