[发明专利]一种定位内存泄漏方法、装置、计算机设备及存储介质有效
| 申请号: | 202111510857.4 | 申请日: | 2021-12-10 |
| 公开(公告)号: | CN115220970B | 公开(公告)日: | 2023-09-08 |
| 发明(设计)人: | 史昌红;阮海清;王荣明 | 申请(专利权)人: | 广州汽车集团股份有限公司 |
| 主分类号: | G06F11/22 | 分类号: | G06F11/22 |
| 代理公司: | 深圳众鼎专利商标代理事务所(普通合伙) 44325 | 代理人: | 谭果林 |
| 地址: | 510030 广东省广州市越*** | 国省代码: | 广东;44 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 定位 内存 泄漏 方法 装置 计算机 设备 存储 介质 | ||
本发明公开了一种定位内存泄漏方法、装置、计算机设备及存储介质,可解决无法快速定位内存泄漏的问题。方法部分包括:当有内存申请函数调用动态内存成功,则在第一链表中插入第一节点;根据内存申请函数的函数信息,检索第二链表中是否有内存申请函数的申请内存;若有,则将调用对应的内存大小叠加至第二链表记录的内存申请函数的申请内存中;当有内存释放函数释放动态内存成功,且从第一链表中查询出内存释放函数的释放指针地址对应的节点为第一节点,则删除第一链表中的第一节点,并将第二链表中与函数名对应的内存申请函数的申请内存大小减去内存释放函数释放的内存大小;根据第二链表内存记录信息对内存泄漏进行检测。
技术领域
本发明涉及计算机技术领域,尤其涉及一种定位内存泄漏方法、装置、计算机设备及存储介质。
背景技术
由于一些使用场景的特殊性,对于软件的可靠性提出了苛刻要求,内存泄漏在软件开发过程中会给该应用的可靠性造成很大影响。因此在软件开发中能够识别到内存泄漏,并且可以快速定位到内存泄漏成了提高软件开发过程中必不可少的工具。
但是目前,大多通过嵌入式Linux系统来检测内存泄漏的问题,一般根据系统信息只能判断当前应用是否存在内存泄漏,而无法定位到内存泄漏在代码中的具体位置。
因此,确有必要提供一种解决上述问题的技术方案。
发明内容
本发明实施例提供一种定位内存泄漏方法、装置、计算机设备及存储介质,可解决无法快速定位内存泄漏的问题。
本发明第一方面提供了一种定位内存泄漏方法,包括:
当有内存申请函数调用动态内存成功,则在第一链表中插入第一节点,所述第一节点保存当前所述调用对应的调用指针地址、函数信息和内存大小;
根据所述内存申请函数的函数信息,检索第二链表中是否有所述内存申请函数的申请内存;
若有,则将所述调用对应的内存大小叠加至所述第二链表记录的所述内存申请函数的申请内存中;
当有内存释放函数释放动态内存成功,且从所述第一链表中查询出所述内存释放函数的释放指针地址对应的节点为所述第一节点,则删除所述第一链表中的所述第一节点,并将所述第二链表中与所述函数名对应的内存申请函数的申请内存大小减去所述内存释放函数释放的内存大小;
根据所述第二链表内存记录信息对内存泄漏进行检测。
在一种可能的设计中,所述根据所述内存申请函数的函数信息,检索所述第二链表中是否有所述内存申请函数的申请内存之后,所述方法还包括:
当检索到所述第二链表未含有所述内存申请函数的申请内存时,则按照所述内存申请函数的函数信息在所述第二链表中插入第二节点,所述第二节点保存当前所述内存申请函数的函数信息和内存总大小。
在一种可能的设计中,所述根据所述第二链表内存的记录信息对内存泄漏进行检测,包括:
在所述第二链表内存的记录信息对内存泄漏进行检测时,启动预先设置的定时器,定时获取预设时段内所述第二链表中所述内存申请函数的申请内存总大小;
根据所述预设时段内所述内存申请函数的申请内存总大小,对内存泄漏进行检测。
在一种可能的设计中,所述根据所述预设时段内所述内存申请函数的申请内存总大小,对内存泄漏进行检测,包括:
当所述内存申请函数申请的内存大小不断增大时,则判断所述内存申请函数存在内存泄漏。
在一种可能的设计中,所述将所述第二链表中与所述函数名对应的内存申请函数的申请内存大小减去所述内存释放函数释放的内存大小之后,所述方法还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广州汽车集团股份有限公司,未经广州汽车集团股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111510857.4/2.html,转载请声明来源钻瓜专利网。
- 上一篇:换挡控制方法及换挡控制系统
- 下一篇:碰撞后车辆控制方法、车辆控制模块及车辆





