DBG

【转】C/C++内存泄漏及检测

给你一囗甜甜゛ 提交于 2019-11-28 16:47:23
“该死系统存在内存泄漏问题”,项目中由于各方面因素,总是有人抱怨存在内存泄漏,系统长时间运行之后,可用内存越来越少,甚至导致了某些服务失败。内存泄漏是最难发现的常见错误之一,因为除非用完内存或调用malloc失败,否则都不会导致任何问题。实际上,使用C/C++这类没有垃圾回收机制的语言时,你很多时间都花在处理如何正确释放内存上。如果程序运行时间足够长,如后台进程运行在服务器上,只要服务器不宕机就一直运行,一个小小的失误也会对程序造成重大的影响,如造成某些关键服务失败。 对于内存泄漏,本人深有体会!实习的时候,公司一个项目中就存在内存泄漏问题,项目的代码量非常大,后台进程也比较多,造成内存泄漏的地方比较难找。这次机会是我对如何查找内存泄漏问题,有了一定的经验,后面自己的做了相关实验,在此我分享一下内存泄漏如何调试查找,主要内容如下: 1、 内存泄漏简介及后果 2、 Windows平台下的内存泄漏检测3、Linux平台下的内存泄漏检测 2.1、 检测是否存在内存泄漏问题 2.2、 定位具体的内存泄漏地方 3、 Linux平台下的内存泄漏检测 4、 总结 其实Windows、Linux下面的内存检测都可以单独开篇详细介绍,方法和工具也远不止文中介绍到的,我的方法不是最优的,如果您有更好的方法,也请您告诉我和大家。 1、内存泄漏简介及后果 wikipedia中这样定义内存泄漏