1、安装 valgrind
linux环境首先进入root用户
而后执行下面的命令
tar -jxvf valgrind-3.12.0.tar.bz2
cd valgrind-3.12.0
./configure
make
make installlinux
valgrind --version 查看valgrind 版本,而且验证是否安装成功
2、查看内存泄漏示例ios
#include <iostream> using namespace std; int main() { char *p = new char[10]; *p = 'a'; *p++ = 'b'; cout << p << endl; return 0; } g++ -g -o core main.cpp valgrind --leak-check=yes --show-reachable=yes --log-file=a.log ./core valgrind --leak-check=full --show-reachable=yes --log-file=a.log ./shdaily.fcgi "op=search&date=2011-04-14¤t=4" --tool=memcheck //使用valgrind的memcheck功能 -show-reachable=yes //是否检测控制范围以外的泄漏,好比全局指针、static指针等 --log-file=a.log //结果输出到文件 --leak-check=full //显示具体代码中泄漏的地方
而后能够看出哪一行内存泄漏了编程
1 概述
在用C/C++编程的时候,常常会出现下面三种内存问题:ide
内存泄漏 悬挂指针 屡次释放同一块内存 本系列文章简要介绍排查这三个问题的工具和方法,先看看Valgrind int main() { char *p = malloc(sizeof(char) * 10); if (p == NULL) { return 0; } *p++ = 'a'; *p++ = 'b'; printf("%s\n", *p); return 0; }