ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

valgrind交叉编译

2021-05-21 12:00:10  阅读:362  来源: 互联网

标签:交叉 -- valgrind 编译 内核 linux 工具 arm


一、概述

1.1、介绍

Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合。Valgrind由内核(core)以及基于内核的其他调试工具组成。内核类似于一个框架(framework),它模拟了一个CPU环境,并提供服务给其他工具;而其他工具则类似于插件 (plug-in),利用内核提供的服务完成各种特定的内存调试任务。
Valgrind的体系结构如下图所示:
Valgrind体系结构图

1.2、内嵌工具

  1. Memcheck 用来检测程序中出现的内存问题
  2. Callgrind 收集程序运行时的一些数据,建立函数调用关系图,还可以有选择地进行cache模拟
  3. Cachegrind 分析CPU的cache命中率、丢失率,用于进行代码优化
  4. Helgrind 用来检查多线程程序中出现的竞争问题
  5. Massif 堆栈分析器,它能测量程序在堆栈中使用了多少内存,告诉我们堆块,堆管理块和栈的大小

二、下载

https://www.valgrind.org/downloads/
在这里插入图片描述

三、编译

tar xvf valgrind-3.17.0.tar.bz2

cd valgrind-3.17.0

./autogen.sh

./configure --host=arm-linux CC=arm-none-linux-gnueabi-gcc CPP=arm-none-linux-gnueabi-cpp CXX=arm-none-linux-gnueabi-g++ --prefix=/opt/valgrind-arm-3.17.0
make 

make install

如果编译报错: error: Unsupported host architecture.Sorry
解决方法:将 --host=arm-linux 改为 --host=armv7-linux

编译完成后会在/opt/valgrind-arm-3.17.0目录下看到如下目录:
在这里插入图片描述

四、使用

valgrind [valgrind-options] your-prog [your-prog options]
选项作用
-h --help显示帮助信息
–version显示valgrind内核的版本,每个工具都有各自的版本。
-q --quit安静的运行,只打印错误信息
–tool= [default: memcheck]最常用的选项。运行valgrind中名为toolname的工具。如果省略工具名,默认运行memcheck。
–db-attach=<yes|no> [default: no]绑定到调试器上,便于调试错误。

标签:交叉,--,valgrind,编译,内核,linux,工具,arm
来源: https://blog.csdn.net/fengliluohua/article/details/117111466

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有