Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具。
安装,我是先valgrind一下发现这个的版本
apt install valgrind # version 1:3.15.0-1ubuntu9.1
新建一个项目与添加一个main.c
编辑main.c的代码:
#include <stdio.h> /*标准输入输出定义*/
#include <stdlib.h> /*标准函数库定义*/
#include <unistd.h> /*Unix 标准函数定义*/
#include <string.h> /*字符串功能函数*/
char *test() {
return (char *)malloc(10000000);
}
int main() {
test();
return 0;
}
编译一个调试版本(编译出来一个a.out文件)
gcc main.c -g
使用valgrind跑一遍流程
valgrind --tool=memcheck --leak-check=yes --log-file=a.log --show-reachable=yes -s ./a.out一般这条命令运行完成以后,会生成一个a.log文件
查看a.log里面的信息
cat a.log
这个时候泄露的代码行就暴露出来了.