Linux下的一个很好的内存泄漏检测工具
最近做项目时用到的--valgrind.能检测 1)使用未初始化的内存 2)读/写已经被释放的内存 3)读/写内存越界 4)读/写不恰当的内存栈空间 5)内存泄漏 6)使用malloc/new/new[]和free/delete/delete[]不匹配。最简单的使用: valgrind --leak=check=full 后跟执行文件。关于内存检
·
最近做项目时用到的--valgrind.
能检测
1)使用未初始化的内存
2)读/写已经被释放的内存
3)读/写内存越界
4)读/写不恰当的内存栈空间
5)内存泄漏
6)使用malloc/new/new[]和free/delete/delete[]不匹配。
最简单的使用: valgrind --leak=check=full 后跟执行文件。
关于内存检测的原理:
主要就是截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把他的指针加入一个全局的list中;每当释放一块内存,再把他的指针从list中删除。这样,当程式结束的时候,list中剩余的指针就是指向那些没有被释放的内存。
更多推荐
已为社区贡献1条内容
所有评论(0)