[发明专利]一种内存泄漏检测方法及内存管理模块在审
申请号: | 202010121573.5 | 申请日: | 2020-02-26 |
公开(公告)号: | CN111352734A | 公开(公告)日: | 2020-06-30 |
发明(设计)人: | 刘太强;张羽 | 申请(专利权)人: | 烽火通信科技股份有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50;G06F11/36 |
代理公司: | 武汉智权专利代理事务所(特殊普通合伙) 42225 | 代理人: | 董婕 |
地址: | 430000 湖北省武*** | 国省代码: | 湖北;42 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 内存 泄漏 检测 方法 管理 模块 | ||
本发明实施例提供了一种内存泄漏检测方法及内存管理模块,方法包括:在内存中增加数字序号标识,所述数字序号标识用于将上层内存与下层内存进行关联;基于所述数字序号标识,获取内存管理模块中当前内存关联的下层内存数量;若所述内存管理模块中当前内存关联的下层内存数量不等于业务数据模块的统计数目,则确认所述当前内存关联的下层内存发生了内存泄漏。本发明实施例提供的一种内存泄漏检测方法及内存管理模块,通过在内存中增加数字序号标识,利用该序号标识来确定内存之间的上下层关联。从而和业务程序里的数据间关联关系形成校验,准确检测出是否存在内存泄漏情况出现。
技术领域
本发明涉及电信系统软件技术领域,尤其涉及一种内存泄漏检测方法及内存管理模块。
背景技术
C语言是一种能高效执行的程序开发语言,但是C语言编程有个很常见的问题就是内存泄漏,出现内存泄漏的进程内存占用量将会不断的增长,直到系统无可用的内存。内存泄漏即软件程序在运行过程中申请了内存,当内存不再使用时没有正常的释放,但是内存已经不在业务程序里数据结构里了,也就是业务程序找不到且不再使用这些内存了,但是对于操作系统来说内存还是被业务程序占用着并没有释放,结果操作系统就把内存标记为一直占用着,而且业务程序可能会产生越来越多的内存泄漏,直到耗光系统内存再无可申请的内存。
现有技术中对于检测内存泄漏的常见方法就是中断当前的所有业务,业务程序释放掉不是泄漏的内存,那么剩下的还未释放的就是已经泄漏的内存,然后再检测泄漏的内存所属的业务代码,并检查代码里存在的可能的忘记释放内存的地方,并进行修正然后重新编译和重新运行程序。这样的方法一般都是在开发阶段的测试活动中进行,如果是软件在客户使用时做,那要中断所有运行的业务来检测内存泄漏,这将影响用户的正常业务。
因此,现在亟需一种内存泄漏检测方法来解决上述问题。
发明内容
为了解决上述问题,本发明实施例提供一种克服上述问题或者至少部分地解决上述问题的一种内存泄漏检测方法及内存管理模块。
第一方面本发明实施例提供一种内存泄漏检测方法,包括:
在内存中增加数字序号标识,所述数字序号标识用于将上层内存与下层内存进行关联;
基于所述数字序号标识,获取内存管理模块中当前内存关联的下层内存数量;
若所述内存管理模块中当前内存关联的下层内存数量不等于业务数据模块的统计数目,则确认所述当前内存关联的下层内存发生了内存泄漏。
其中,所述在内存中增加数字序号标识,包括:
在所述内存管理模块中添加内存关联应用程序编程接口;
基于所述内存关联应用程序编程接口,使用数字序号标识将上层内存和下层内存进行关联,其中,所述数字序号标识记录在所述下层内存的头部信息中。
其中,所述基于所述数字序号标识,获取内存管理模块中当前内存关联的下层内存数量,包括:
在所述内存管理模块中添加计数应用程序编程接口;
基于所述计数应用程序编程接口,获取当前内存的数字序号;
在所述内存管理模块中所有内存块中统计上层数字序号等于所述当前内存的数字序号的内存数量。
其中,在所述确认所述当前内存关联的下层内存发生了内存泄漏后,所述方法还包括:
对所述当前内存关联的下层内存进行内存泄漏消除。
其中,所述对所述当前内存关联的下层内存进行内存泄漏消除,包括:
在所述内存管理模块中添加内存泄漏检测应用程序编程接口;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于烽火通信科技股份有限公司,未经烽火通信科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010121573.5/2.html,转载请声明来源钻瓜专利网。