1.简介
Valgrind工具集提供一系列调试和分析工具,使用户的程序运行更快更正确。其中最流行的工具是Memcheck,它能够检测到在C/C++程序中可能导致崩溃和不可预测的诸多内存相关错误!
2.程序准备
使用Gcc编译器,同时加上-g参数进行;以使Memcheck发现的错误能包含准确的行号。尽量不要使用-O+优化等级数的形式进行优化,这可能导致程序运行更缓慢,或者导致产生不准确的错误信息。
3.运行程序
运行方式:
如果你的程序运行的方式为: program arg1 arg2
那么使用命令行的形式:
valgrind --leak-check=yes program arg1 arg2
如:valgrind ./example //valgrind 的命令参数可自行选择
valgrind运行的消息显示形式
消息形式为
==pid== some-message-from-Valgrind
4.valgrind命令常用参数:
--leak-check = yes 开启 内存泄漏检测
--tool=[tools_of_valgrind]
--gen-suppressions=yes 开启错误抑制,防止产生过多无关的错误
--log-file=[filename] 将日志消息写入指定的文件中
5.valgrind提供的其他工具
valgrind软件包提供诸多的工具在不同的方面对程序进行调试和分析,常见的插件工具有:
Memcheck:内存错误检测器,查找一些隐藏的bugs,是系统默认的工具
Cachegrind :缓存和分支预测分析器,使用户成寻运行更快
Helgrind:多线程错误检测器
Massif:堆栈分析器,使用户程序占用更少的内存
其他工具有:Callgrind、DRD、DHAT、SGcheck、BBV等
6.valgrind的安装
官网地址:http://valgrind.org/ 下载相应的安装包
#tar -jzf valgrind-xxxxxx.tar.bz2
#cd valgrind-xxxxx
#./configrue //缺少相关的依赖,请自行处理!
#make
#make install
------完毕!