1、以valgrind方式运行可执行文件,如下:其中假定可执行文件运行方式为 ./bin/main conf
valgrind --tool=memcheck --leak-check=yes --show-reachable=yes --log-file=leak.log ./bin/main conf
2、分析内存泄漏
第一步会生成内存泄漏文件leak.log,形如下面所示为leak.log文件内容
这里如上图所示,如果含有XXX definitely lost in loss XXX标识的语句即表明你的程序中有内存泄漏,我们可以清楚的看到内存泄漏栈,这时只要从下往上依次查看
main_dynamic.cpp:19 行
CHSSubjectItemParser.cpp:194 行
即可大致确定内存泄漏地点,这里我们可以直接查看CHSSubjectItemParser.cpp的第194行是否有内存没有释放。
- 根据XXX definitely lost in loss XXX标识查看代码中的内存泄漏并处理,直到不再出现上述提示为止。
q&a:
valgrind安装