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

Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Google-O'Reilly开源代码奖。

Valgrind遵守GNU通用公共许可证条款,是一款自由软件。

官网

http://www.valgrind.org

下载与安装

#wget http://www.valgrind.org/downloads/valgrind-3.8.1.tar.bz2
#tar xvf valgrind-3.8.1.tar.bz2
#cd valgrind-3.8.1
#./configure --prefix=/usr/local/webserver/valgrind
#make
#make install

测试代码

#include <stdlib.h>
int* func(void)
{int* x = malloc(10 * sizeof(int));x[10] = 0;  //问题1: 数组下标越界
}                  int main(void)
{int* x=NULL;x=func();//free(x);  x=NULL;return 0;   //问题2: 内存没有释放}

编译

#gcc -g -o test test.c

内存检查
#valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./test

报告:

说明

Invalid write of size 4:表示数组越界写了4字节

40 bytes in 1 blocks:表示因程序退出而发生内存泄露40字节

修复bug,重新检查提示已经没有内存泄露

文档:

Valgrind 中包含的 Memcheck 工具可以检查以下的程序错误:

  使用未初始化的内存 (Use of uninitialised memory)
  使用已经释放了的内存 (Reading/writing memory after it has been free’d)
  使用超过malloc分配的内存空间(Reading/writing off the end of malloc’d blocks)
  对堆栈的非法访问 (Reading/writing inappropriate areas on the stack)
  申请的空间是否有释放 (Memory leaks – where pointers to malloc’d blocks are lost forever)
  malloc/free/new/delete申请和释放内存的匹配(Mismatched use of malloc/new/new [] vs free/delete/delete [])
  src和dst的重叠(Overlapping src and dst pointers in memcpy() and related functions)
  重复free

其他参考工具:likwid  http://code.google.com/p/likwid/downloads/list

Unix下C程序内存泄漏检测工具Valgrind安装与使用相关推荐

  1. Unix下C程序内存泄露检测工具:valgrind的安装使用

    Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...

  2. C++ 内存泄漏检测工具valgrind简单使用

    C++ 内存泄漏检测工具valgrind简单使用 目录 C++ 内存泄漏检测工具valgrind简单使用 valgrind安装 valgrind测试内存泄漏 valgrind安装 通过软件商店下载: ...

  3. C/C++的内存泄漏检测工具Valgrind memcheck的使用经历

    Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Lin ...

  4. Linux内存泄漏检测工具 Valgrind使用

    一 .valgrind简介 最近在Linux下程序碰到了内存泄漏的问题,所以在网上找了找Linux下的内存泄漏检测工具,找到了Valgrind这款功能很强大的内存调试.内存泄漏检测以及性能分析.检测线 ...

  5. 【安装配置】安装适用于 Linux 的 Windows 子系统 WSL ,完成 Clion 中对内存泄漏检测工具 Valgrind 的配置,亲测可用

    关键词:[Linux] [WSL] [Clion] [Valfrind] 一.前言 今天在回答一个粉丝的评论(关于C++ delete 和 delete[ ])时,引出上面的系列问题,具体流程如下: ...

  6. Linux 内存泄漏检测工具 Valgrind

    Valgrind 是一款 Linux下(支持 x86.x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和 ...

  7. Linux:内存泄漏检测工具--Valgrind

    在写大型C/C++工程时难免会发生内存泄漏现象,系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调 ...

  8. 内存泄漏检测工具valgrind神器

    1.1 介绍 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个框架(framewor ...

  9. c linux new使内存耗尽_C/C++的内存泄漏检测工具Valgrind memcheck的使用经历

    Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Lin ...

最新文章

  1. 如何用c语言读取硬盘串号_如何用C语言实现OOP
  2. lodop打印技巧与注意事项
  3. 以太坊区块链_以太坊区块链搭建与使用(一)-私有链
  4. chrome 控制台 base64加密解密
  5. java 不写this_还没弄明白Java中的this关键字吗,那来看这篇就够了!
  6. android重新打开应用程序,关于安卓应用后台运行后,重新进入,应用重新打开问题...
  7. 泛微协同商务系统_泛微ecology OA Beanshell组件远程代码执行漏洞复现
  8. 在有C语言的基础上,快速学习python(C语言转战python)(python3)
  9. Henri Bergson and the Perception of Time
  10. JDBC四个核心对象及其常用方法
  11. 在html页面上引用脚本文件,如何在html中调用JS文件
  12. 微信公众号支付开发 --Java
  13. 【Redis-6.0.8】CRC16
  14. 航班编程代码c语言,航班查询系统C语言源程序
  15. 计算机水平用什么形容词形容,形容应用价值的词语有哪些 , 形容价值的成语有哪些...
  16. 宅在家的这几天,突然收到(余额宝)视频面试,四面成功拿下offer
  17. 文章抓取(含源码下载)
  18. 利用Win32 API写一个支持多坐标的鼠标连点器.
  19. 做GIF图的工具哪个好
  20. java车牌识别字符分割_车牌识别LPR(六)-- 字符分割

热门文章

  1. layui 表格内容写temple函数_layui表格-template模板的三种用法
  2. 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯
  3. css表示第一个元素和最后一个元素,CSS第一个和最后一个子元素
  4. android上传本地图片到服务器上,Android使用post方式上传图片到服务器的方法
  5. git init 会不会清空_Git命令:git pull amp; git fetch
  6. 认识PaddlePaddle
  7. 机器学习四剑客1——Numpy
  8. 机器学习中的梯度下降( Gradient Descent)算法
  9. 嵌入式linux结构框图,嵌入式linux系统的结构
  10. sklearn中的xgboost_xgboost来了