C++不用工具,如何检测内存泄漏?
大概12年前,在某外企 的时候,要做一个跨平台的office,即聚合了word Excel 以及 ppt等几大模块,代码大概200w行,我负责的就是内存泄漏这块最近很多小伙伴找我,说想要一些单片机资料,然后我根据自己从业十年经验,熬夜搞了几个通宵,精心整理了一份「单片机专业入门到高级教程+工具包」,点个关注,全部无偿共享给大家!!!
评论区回复“888”,关注我之后私信回复“666”,即可拿走。
一开始的时候,直接看源码,简单的new delete就很容易定位 出来,大概近千个这种泄漏
在最后面的时候,通过肉眼越来越难定位,因为一个new的内存地址,可能经过几十个函数,所以非常难以确定是不是内存泄漏,所以干脆就上日志,在new的时候打印地址以及文件名和行号,delete的时候打印地址以及文件名和行号,这种解决了近百个吧
到最后,office运行一段时间后,内存就暴涨,这个时候,就不得不使用工具了,当时用了各种内存泄漏工具,valgrind在这些工具面前就是小弟弟。毕竟公司有钱,最后尝试了很多种,还是免费的效果最好,他就是微软的UMDH