Valgrind是一款应用运行时诊断工具,自动检测内存管理和线程的bug,用于内存调试、内存泄漏检测以及性能分析,遵守GNU通用公共许可证条款。
Valgrind功能介绍
1、Valgrind 是一个运行时诊断工具,它可以监视一个指定程序的活动并通知你在你的代码中可能存在的各种各样的内存管理问题。
2、它类似于老式的 Electric Fence 工具(该工具将标准的内存分配函数替换为自己的函数以提高诊断能力),但被认为更容易使用并且在多个方面都提供了更丰富的功能——而且现在大多 数主流 Linux 发行版都提供了该工具,所以在你的系统中使用它不需要花费太多时间,你只需安装它的软件包即可。
Valgrind安装与使用方法
一、 安装
1. autoconf
# wget http://ftp.gnu.org/gnu/autoconf/autoconf-2.69.tar.gz
# tar -zxvf autoconf-2.69.tar.gz
# cd autoconf-2.69
# ./configure
# make; make install
2. automake
# wget http://ftp.gnu.org/gnu/automake/automake-1.14.tar.gz
# tar -zxvf automake-1.14.tar.gz
# cd automake-1.14
# ./bootstrap.sh
# ./configure
# make; make install
3. valgrind
# wget http://valgrind.org/downloads/valgrind-3.9.0.tar.bz2
# tar -jxvf valgrind-3.9.0.tar.bz2
# cd valgrind-3.9.0
# ./autogen.sh
# ./configure
# make; make install
二、快速使用指南
1. 简介
Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件工具套装。
它最流行的工具是Memcheck, 它能检测C/C++中大部分的内存相关的错误。
2. 准备要检查的程序
程序编译时使用 “-g”参数,以添加调试信息,这样Memcheck的错误消息可以精确到行;
编译时使用“-O0”也有必要,只是速度会很慢,“-O1”可能会导致Memecheck的错误消息不正确;
3. 在Memcheck下运行程序:
如果你的程序的运行命令如下:
myprog arg1 arg2
则使用如下命令行:
valgrind --leak-check=yes myprog arg1 arg2
Memcheck是valgrind默认的工具,"--leak-check"选项开启了详细内存泄漏检测器;
这时程序会比平时运行得慢很多(如,慢20~30倍),并且会消耗更多的内存;
程序运行结束后,或你用“CTRL+C”中止程序后,Memcheck将会列出检测到的内存出错和泄漏的信息;
Valgrind更新日志
部分更新内容:
电源已添加对 ISA 3.0 的支持;
Solaris 端口改进和丰富;
添加了对 MacOS 10.12(Sierra)的初步支持;
抑制条目中的最大呼叫者数现在等于 --num -callers(500)的最大大小;
改进了执行大量丢弃的程序的性能指令地址范围为8KB或更小。
- PC官方版
- 安卓官方手机版
- IOS官方手机版