分享几款Linux 下C/C++程序内存泄漏检查工具( 二 )


Valgrind 的参数分为两类,一类是 core 的参数,它对所有的工具都适用;另外一类就是具体某个工具如 memcheck 的参数 。Valgrind 默认的工具就是 memcheck,也可以通过“–tool=tool name”指定其他的工具 。Valgrind 提供了大量的参数满足你特定的调试需求,具体可参考其用户手册 。

分享几款Linux 下C/C++程序内存泄漏检查工具

文章插图
 

分享几款Linux 下C/C++程序内存泄漏检查工具

文章插图
 
利用Memcheck发现常见的内存问题总结Memcheck将内存泄露分为两种,一种是可能的内存泄露(Possibly lost),另外一种是确定的内存泄露(Definitely lost) 。Possibly lost 是指仍然存在某个指针能够访问某块内存,但该指针指向的已经不是该内存首地址 。Definitely lost 是指已经不能够访问这块内存 。而Definitely lost又分为两种:直接的(direct)和间接的(indirect) 。直接和间接的区别就是,直接是没有任何指针指向该内存,间接是指指向该内存的指针都位于内存泄露处 。在上述的例子中,根节点是directly lost,而其他节点是indirectly lost




推荐阅读