1 内存检测工具的下载
1)下载安装包
wget -c https://sourceware.org/pub/valgrind/valgrind-3.17.0.tar.bz2 //网址可以适当换掉
2)解压
tar -xvf valgrind-3.17.0.tar.bz2
cd valgrind-3.17.0/
3)执行配置文件和安装
./configure --prefix=/usr/local/valgrind
make
make install
4)建立软连接
//如果我直接运行valgrind,会发现这个命令没找到,那是因为这个命令不在系统的搜索路径,所以我们需要建立软连接在/bin目录
ln -s /usr/local/valgrind/bin/valgrind /bin/valgrind
2 简单的执行语句命令示例
//格式:
//valgrind --tool=memcheck 一些开关 可执行文件名
//--tool=memcheck :使用valgrind工具集中的memcheck工具
//--leak-check=full : 指的是完全full检查内存泄漏
//--show-reachable=yes :是显示内存泄漏的地点
//--trace-children = yes :是否跟入子进程
//--log-file=log.txt:讲调试信息输出到log.txt,不输出到屏幕
//最终用的命令,这几个都行:
valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./nginx
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes 程序名
valgrind --tool=memcheck --leak-check=full --show-reachable=yes --track-fds=yes --log-file=log.txt ./nginx
//查看内存泄漏的三个地方:
//(1) 9 allocs, 8 frees 差值是1,就没泄漏,超过1就有泄漏
//(2)中间诸如: by 0x401363: CConfig::Load(char const*) (ngx_c_conf.cxx:77)和我们自己的源代码有关的提示,就要注意;
//(3)LEAK SUMMARY:definitely lost: 1,100 bytes in 2 blocks