`
yangzhiyong77
  • 浏览: 961617 次
文章分类
社区版块
存档分类
最新评论

内存检测_valgrind

 
阅读更多

valgrind.

能检测

1)使用未初始化的内存
2)读/写已经被释放的内存
3)读/写内存越界
4)读/写不恰当的内存栈空间
5)内存泄漏
6)使用malloc/new/new[]和free/delete/delete[]不匹配。
最简单的使用: valgrind --leak=check=full 后跟执行文件。

关于内存检测的原理:

主要就是截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把他的指针加入一个全局的list中;每当释放一块内存,再把他的指针从list中删除。这样,当程式结束的时候,list中剩余的指针就是指向那些没有被释放的内存。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics