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; }