[发明专利]内存泄漏调试方法及装置有效
申请号: | 201610997589.6 | 申请日: | 2016-11-11 |
公开(公告)号: | CN108073461B | 公开(公告)日: | 2021-01-19 |
发明(设计)人: | 刘海鹏 | 申请(专利权)人: | 腾讯科技(深圳)有限公司 |
主分类号: | G06F11/07 | 分类号: | G06F11/07 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;贾允 |
地址: | 518000 广东省深圳*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 泄漏 调试 方法 装置 | ||
1.一种内存泄漏调试方法,其特征在于,所述方法包括:
扫描每个内存对象,获取每个内存对象引用的其他内存对象的地址列表;
获取目标对象集合,所述目标对象集合包括待调试的目标内存对象;所述目标对象集合包括活跃对象集合和物理泄漏对象集合,通过遍历标记算法区分所述活跃对象集合和物理泄漏对象集合;
遍历所述目标对象集合中的物理泄漏对象集合,根据所述地址列表,构造所述物理泄漏对象集合中目标内存对象的引用关系链;根据所述物理泄漏对象集合中目标内存对象的引用关系链和调用栈信息,对物理泄漏的泄漏点进行分析调试;
遍历所述目标对象集合中的活跃对象集合,根据所述地址列表,构造所述活跃对象集合中目标内存对象的引用关系链;根据所述活跃对象集合中目标内存对象的引用关系链,得到所述活跃对象集合中目标内存对象被引用的实际数目,若所述实际数目与预期的目标数目相同,则判定所述目标内存对象不是逻辑泄漏对象,若所述实际数目大于所述目标数目,则判定所述目标内存对象为逻辑泄漏对象。
2.根据权利要求1所述的内存泄漏调试方法,其特征在于,所述构造所述目标内存对象的引用关系链包括:
根据所述每个内存对象引用的其他内存对象的地址列表,获取引用目标内存对象的内存对象的地址列表,进而将所述目标对象集合转换为目标内存对象及相应的一级引用对象的集合,所述一级引用对象为所述引用目标内存对象的内存对象。
3.根据权利要求2所述的内存泄漏调试方法,其特征在于,所述方法还包括:
根据所述目标内存对象的调用栈信息,推测所述所述目标内存对象及一级引用对象的数据类型,进而构造出带数据类型信息的引用关系链。
4.根据权利要求2所述的内存泄漏调试方法,其特征在于,所述方法还包括:
获取引用所述一级引用对象的内存对象的地址列表,进而得到目标内存对象及相应的一级引用对象和二级引用对象的集合,所述二级引用对象为所述引用一级引用对象的内存对象。
5.根据权利要求2所述的内存泄漏调试方法,其特征在于,所述将所述目标对象集合转换为目标内存对象及相应的一级引用对象的集合包括:
取出每个内存对象引用的其他内存对象的地址列表,针对每一个目标内存对象,遍历所述地址列表,创建所述目标内存对象的引用对象列表项目,所述项目包括目标内存对象及所有引用该目标内存对象的一级引用对象,遍历目标对象集合,得到目标内存对象的引用对象列表项目的集合。
6.根据权利要求3所述内存泄漏调试方法,其特征在于,所述推测所述所述目标内存对象及一级引用对象的数据类型包括:
针对引用关系链上的每一个内存对象,根据分配函数栈信息,得到对应的分配内存对象的代码行,由所述代码行内容推测引用关系链上的内存对象的数据类型。
7.一种内存泄漏调试装置,其特征在于,包括:
扫描模块,用于扫描每个内存对象,获取每个内存对象引用的其他内存对象的地址列表;
获取模块,用于获取目标对象集合,所述目标对象集合包括待调试的目标内存对象;所述目标对象集合包括活跃对象集合和物理泄漏对象集合,通过遍历标记算法区分所述活跃对象集合和物理泄漏对象集合;
构造模块,用于遍历所述目标对象集合中的物理泄漏对象集合,根据所述地址列表,构造所述目标内存对象的引用关系链;还用于遍历所述目标对象集合中的活跃对象集合,根据所述地址列表,构造所述活跃对象集合中目标内存对象的引用关系链;
存储模块,用于存储内存对象的调用栈信息;
判断模块,用于根据所述活跃对象集合中目标内存对象的引用关系链,得到所述活跃对象集合中目标内存对象被引用的实际数目,若所述实际数目与预期的目标数目相同,则判定所述目标内存对象不是逻辑泄漏对象,若所述实际数目大于所述目标数目,则判定所述目标内存对象为逻辑泄漏对象;
所述装置还用于根据所述物理泄漏对象集合中目标内存对象的引用关系链和调用栈信息,对物理泄漏的泄漏点进行分析调试。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于腾讯科技(深圳)有限公司,未经腾讯科技(深圳)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201610997589.6/1.html,转载请声明来源钻瓜专利网。