怎么检测内存泄露-创新互联

检测内存泄漏的关键是要能截获住对分配内存和释放内存的函数的调用。截获住这两个函数,我们就能跟踪每一块内存的生命周期,比如,每当成功的分配一块内存后,就把它的指针加入一个全局的list中;每当释放一块内存,再把它的指针从list中删除。这样,当程序结束的时候,list中剩余的指针就是指向那些没有被释放的内存。这里只是简单的描述了检测内存泄漏的基本原理,详细的算法可以参见SteveMaguire的<>。如果要检测堆内存的泄漏,那么需要截获住malloc/realloc/free和new/delete就可以了(其实new/delete最终也是用malloc/free的,所以只要截获前面一组即可)。对于其他的泄漏,可以采用类似的方法,截获住相应的分配和释放函数。比如,要检测BSTR的泄漏,就需要截获SysAllocString/SysFreeString;要检测HMENU的泄漏,就需要截获CreateMenu/DestroyMenu。(有的资源的分配函数有多个,释放函数只有一个,比如,SysAllocStringLen也可以用来分配BSTR,这时就需要截获多个分配函数)在Windows平台下,检测内存泄漏的工具常用的一般有三种,MSC-RuntimeLibrary内建的检测功能;外挂式的检测工具,诸如,Purify,BoundsChecker等;利用WindowsNT自带的PerformanceMonitor。这三种工具各有优缺点,MSC-RuntimeLibrary虽然功能上较之外挂式的工具要弱,但是它是免费的;PerformanceMonitor虽然无法标示出发生问题的代码,但是它能检测出隐式的内存泄漏的存在,这是其他两类工具无能为力的地方。怎么检测内存泄露
标题名称:怎么检测内存泄露-创新互联
路径分享:http://www.hxwzsj.com/article/dpecch.html

其他资讯

Copyright © 2025 青羊区翔捷宏鑫字牌设计制作工作室(个体工商户) All Rights Reserved 蜀ICP备2025123194号-14
友情链接: 成都定制网站建设 成都定制网站建设 外贸网站设计方案 定制网站设计 成都企业网站设计 重庆外贸网站建设 教育网站设计方案 成都网站建设公司 网站制作 定制网站制作 网站制作公司 成都网站设计 网站制作 网站设计制作 重庆手机网站建设 成都网站制作公司 成都模版网站建设 响应式网站设计 成都网站建设 自适应网站设计 营销网站建设 成都网站建设