采用valgrind来分析内存泄漏 和trace 函数调用

valgrind工具在linux下分析内存泄漏很方便。

例如

valgrind --log-file=valReport --leak-check=full --show-reachable=yes --leak-resolution=low  --num-callers=20 ./sample

在valReport中,可以看到 direct 错误和 indirect错误,对于后者一般不用管它,对于前者一定要查清楚,它是真正泄漏的地方。

 

 

另外在代码trace过程中,如果很大的工程,我发现用这个工具去定位函数调用还是很方便的。

因为在linux下,用eclipse或者GDB也可以debug去定位。但是不够高效快捷。

而借助于valgrind,比如某个函数,你在函数里面插一个打印,然后申请一块buffer,但是不释放。

这样你调用上面的命令后,在报告中可以通过内存泄漏功能,明显看出这个函数的调用关系。

从而很快找到它。

你可能感兴趣的:(eclipse,linux,buffer,工具)