内存泄露检测工具valgrind

内存泄露是一个非常隐蔽的事情,因此大多数情况下比较难检测。Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。Valgrind这个名字取自北欧神话中英灵殿的入口。

安装

官网文档
brew install valgrind
或者

使用

假设main.cpp包含如下程序,

#include "stdlib.h"
int main(void)
{
int *x = (int *)malloc(100 * sizeof(int));
x[0] = 0;
return 0;
}

通过如下脚本进行编译,g++ main.cpp -o main,之后通过如下脚本进行检测,发现如下图有400bytes的内存泄露,valgrind --tool=memcheck --leak-check=full --show-reachable=yes ./main,在LEAK SUMMARY中就可以发现你泄露的地方了。

ps: mac版本的valgrind有点bug,就是它自己的代码总是会内存泄露,网上找了一些方法也都没能fix,导致我这边直接跑就会泄露3928的字节,如下图。
《内存泄露检测工具valgrind》

点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注