Unix下C程序内存泄漏检测工具Valgrind安装与使用
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安装与使用相关推荐
- Unix下C程序内存泄露检测工具:valgrind的安装使用
Valgrind是一款用于内存调试.内存泄漏检测以及性能分析的软件开发工具. Valgrind的最初作者是Julian Seward,他于2006年由于在开发Valgrind上的工作获得了第二届Goo ...
- C++ 内存泄漏检测工具valgrind简单使用
C++ 内存泄漏检测工具valgrind简单使用 目录 C++ 内存泄漏检测工具valgrind简单使用 valgrind安装 valgrind测试内存泄漏 valgrind安装 通过软件商店下载: ...
- C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Lin ...
- Linux内存泄漏检测工具 Valgrind使用
一 .valgrind简介 最近在Linux下程序碰到了内存泄漏的问题,所以在网上找了找Linux下的内存泄漏检测工具,找到了Valgrind这款功能很强大的内存调试.内存泄漏检测以及性能分析.检测线 ...
- 【安装配置】安装适用于 Linux 的 Windows 子系统 WSL ,完成 Clion 中对内存泄漏检测工具 Valgrind 的配置,亲测可用
关键词:[Linux] [WSL] [Clion] [Valfrind] 一.前言 今天在回答一个粉丝的评论(关于C++ delete 和 delete[ ])时,引出上面的系列问题,具体流程如下: ...
- Linux 内存泄漏检测工具 Valgrind
Valgrind 是一款 Linux下(支持 x86.x86_64和ppc32)程序的内存调试工具,它可以对编译后的二进制程序进行内存使用监测(C语言中的malloc和free,以及C++中的new和 ...
- Linux:内存泄漏检测工具--Valgrind
在写大型C/C++工程时难免会发生内存泄漏现象,系统编程中一个重要的方面就是有效地处理与内存相关的问题.你的工作越接近系统,你就需要面对越多的内存问题.有时这些问题非常琐碎,而更多时候它会演变成一个调 ...
- 内存泄漏检测工具valgrind神器
1.1 介绍 Valgrind是一套Linux下,开放源代码(GPL V2)的仿真调试工具的集合.Valgrind由内核(core)以及基于内核的其他调试工具组成.内核类似于一个框架(framewor ...
- c linux new使内存耗尽_C/C++的内存泄漏检测工具Valgrind memcheck的使用经历
Linux下的Valgrind真是利器啊(不知道Valgrind的请自觉查看参考文献(1)(2)),帮我找出了不少C++中的内存管理错误,前一阵子还在纠结为什么VS 2013下运行良好的程序到了Lin ...
最新文章
- 如何用c语言读取硬盘串号_如何用C语言实现OOP
- lodop打印技巧与注意事项
- 以太坊区块链_以太坊区块链搭建与使用(一)-私有链
- chrome 控制台 base64加密解密
- java 不写this_还没弄明白Java中的this关键字吗,那来看这篇就够了!
- android重新打开应用程序,关于安卓应用后台运行后,重新进入,应用重新打开问题...
- 泛微协同商务系统_泛微ecology OA Beanshell组件远程代码执行漏洞复现
- 在有C语言的基础上,快速学习python(C语言转战python)(python3)
- Henri Bergson and the Perception of Time
- JDBC四个核心对象及其常用方法
- 在html页面上引用脚本文件,如何在html中调用JS文件
- 微信公众号支付开发 --Java
- 【Redis-6.0.8】CRC16
- 航班编程代码c语言,航班查询系统C语言源程序
- 计算机水平用什么形容词形容,形容应用价值的词语有哪些 , 形容价值的成语有哪些...
- 宅在家的这几天,突然收到(余额宝)视频面试,四面成功拿下offer
- 文章抓取(含源码下载)
- 利用Win32 API写一个支持多坐标的鼠标连点器.
- 做GIF图的工具哪个好
- java车牌识别字符分割_车牌识别LPR(六)-- 字符分割
热门文章
- layui 表格内容写temple函数_layui表格-template模板的三种用法
- 普罗米修斯 监控_完美的分布式监控系统——普罗米修斯
- css表示第一个元素和最后一个元素,CSS第一个和最后一个子元素
- android上传本地图片到服务器上,Android使用post方式上传图片到服务器的方法
- git init 会不会清空_Git命令:git pull amp; git fetch
- 认识PaddlePaddle
- 机器学习四剑客1——Numpy
- 机器学习中的梯度下降( Gradient Descent)算法
- 嵌入式linux结构框图,嵌入式linux系统的结构
- sklearn中的xgboost_xgboost来了