[发明专利]内存泄漏调试方法及装置有效

专利信息
申请号: 201610997589.6 申请日: 2016-11-11
公开(公告)号: CN108073461B 公开(公告)日: 2021-01-19
发明(设计)人: 刘海鹏 申请(专利权)人: 腾讯科技(深圳)有限公司
主分类号: G06F11/07 分类号: G06F11/07
代理公司: 广州三环专利商标代理有限公司 44202 代理人: 郝传鑫;贾允
地址: 518000 广东省深圳*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 内存 泄漏 调试 方法 装置
【说明书】:

发明公开了一种内存泄漏调试方法及装置,属于系统内存管理领域。所述内存泄漏调试方法包括:扫描每个内存对象,获取每个内存对象引用的其他内存对象的地址列表;获取目标对象集合,所述目标对象集合包括待调试的目标内存对象;遍历所述目标对象集合,根据所述地址列表,构造所述目标内存对象的引用关系链;根据所述目标内存对象的引用关系链和调用栈信息,对逻辑泄漏和/或物理泄漏的泄漏点进行分析调试。本发明通过构造目标内存对象的引用关系链,并推测引用关系链上各内存地址对象的数据类型,有效追溯泄漏对象的引用类别和来源,为泄漏点的分析调试工作提供了可靠的参考信息。

技术领域

本发明涉及系统内存管理领域,特别涉及一种内存泄漏调试方法及装置。

背景技术

内存是软件运行的必需资源,在软件长时间运行的过程中,可能由于各种原因导致分配的内存没有释放掉,从而产生内存泄漏,累积效应可能导致系统内存总量减少以至耗尽的现象。内存泄漏包含物理性内存泄漏和逻辑性内存泄漏,泄漏点可能不是对泄漏对象本身的引用,而是深藏在对泄漏对象的引用关系链中,但是c/c++等底层高级语言产生的二进制可执行文件并没有包含数据类型信息,使得获取对象间的引用关系变得困难。

现有技术中,内存内容是否为指向一个内存对象的指针,可以通过内存分配器记账信息近似推断出,基于这个特征,现有的一些c/c++内存调试工具支持物理泄漏对象的自动探测,但是仍无法对内存泄漏进行泄漏点精确定位。

现有技术至少具有如下缺点:

1、内存泄漏信息只给出了泄漏对象的分配栈信息,没有任何有关于具体泄漏点的辅助信息,用户只能够结合对于代码的深刻理解才能推断出具体泄漏点,有时甚至难以推断出具体泄漏点;

2、只能给出物理内存泄漏信息,无法给出逻辑内存泄漏信息。

发明内容

为了解决现有技术的问题,本发明提供了一种内存泄漏调试方法及装置,可以有效追溯泄漏对象的引用类别和引用源,为泄漏点的分析调试工作提供了可靠的参考信息。所述技术方案如下:

一方面,本发明提供了一种内存泄漏调试方法,所述方法包括:

扫描每个内存对象,获取每个内存对象引用的其他内存对象的地址列表;

获取目标对象集合,所述目标对象集合包括待调试的目标内存对象;

遍历所述目标对象集合,根据所述地址列表,构造所述目标内存对象的引用关系链;

根据所述目标内存对象的引用关系链和调用栈信息,对逻辑泄漏和/或物理泄漏的泄漏点进行分析调试。

另一方面,本发明提供了一种内存泄漏调试装置,所述装置包括:

扫描模块,用于扫描每个内存对象,获取每个内存对象引用的其他内存对象的地址列表;

获取模块,用于获取目标对象集合,所述目标对象集合包括待调试的目标内存对象;

构造模块,用于遍历所述目标对象集合,根据所述地址列表,构造所述目标内存对象的引用关系链;

存储模块,用于存储内存对象的调用栈信息。

本发明提供的技术方案带来的有益效果如下:

1)通过内存扫描,获取内存间的引用关系,为逻辑泄漏对象和物理泄漏对象提供分析依据;

2)将内存间的引用关系转化为目标对象集合的引用对象地址列表集合,构造目标内存对象的引用关系链,辅助逻辑泄漏和/或物理泄漏的泄漏点分析;

3)在引用关系链的基础上,结合目标内存对象的调用栈信息,为泄漏点分析提供更加详细的信息。

附图说明

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201610997589.6/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top