预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共12页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

(19)中华人民共和国国家知识产权局(12)发明专利申请(10)申请公布号CN109710530A(43)申请公布日2019.05.03(21)申请号201811617949.0(22)申请日2018.12.28(71)申请人珠海西山居互动娱乐科技有限公司地址519000广东省珠海市高新区唐家湾镇前岛环路325号303室申请人珠海金山网络游戏科技有限公司(72)发明人潘亚楠廖泉辉(74)专利代理机构广州嘉权专利商标事务所有限公司44205代理人陈慧华(51)Int.Cl.G06F11/36(2006.01)G06F12/02(2006.01)权利要求书2页说明书7页附图2页(54)发明名称一种检测对象的内存泄漏的方法及装置(57)摘要本发明涉及一种检测对象的内存泄漏的方法及装置,属于计算机技术领域。其中的方法包括如下步骤:A、根据预设测试规则进行测试,监控并记录待监控对象的引用计数操作及当前引用计数值,所述引用计数操作包括引用计数加1操作和引用计数减1操作;B、待测试结束后,读取每个待监控对象的引用计数值,筛选内存泄漏对象,所述内存泄漏对象为待监控对象中引用计数值不为零的对象;C、再次重复步骤A的测试,监控并记录内存泄漏对象发生引用计数操作时对应的调用栈信息;D、分析调用栈信息,查找引用计数加1操作和引用计数减1操作不匹配的调用栈并定位其对应的代码块。该方法及装置能快速分析内存泄漏原因,使程序开发人员更容易修复bug。CN109710530ACN109710530A权利要求书1/2页1.一种检测对象的内存泄漏的方法,其特征在于,所述方法包括以下步骤:A、根据预设测试规则进行测试,监控并记录待监控对象的引用计数操作及当前引用计数值,所述引用计数操作包括引用计数加1操作和引用计数减1操作;B、待测试结束后,读取每个待监控对象的引用计数值,筛选内存泄漏对象,所述内存泄漏对象为待监控对象中引用计数值不为零的对象;C、再次重复步骤A的测试,监控并记录内存泄漏对象发生引用计数操作时对应的调用栈信息;D、分析调用栈信息,查找引用计数加1操作和引用计数减1操作不匹配的调用栈并定位其对应的代码块。2.根据权利要求1所述的检测对象的内存泄漏的方法,其特征在于,所述步骤A之前还包括:创建测试规则,所述测试规则包括测试场景和测试流程。3.根据权利要求1所述的检测对象的内存泄漏的方法,其特征在于,所述步骤A包括:创建第一打印日志,配置第一打印项,所述第一打印项包括待监控对象的对象名、引用计数操作记录和当前引用计数值;打印所述待监控对象的引用计数操作记录及当前引用计数值。4.根据权利要求3所述的检测对象的内存泄漏的方法,其特征在于,所述打印所述待监控对象的引用计数操作记录包括:初始化第一打印日志,当一个对象被创建时,打印一次引用计数加1操作,此时该对象的引用计数值为1。5.根据权利要求1所述的检测对象的内存泄漏的方法,其特征在于,所述步骤C包括:创建第二打印日志,配置第二打印项,所述第二打印项包括内存泄漏对象的对象名、引用计数操作时对应的调用栈信息;对每个内存泄漏对象按引用计数操作的时间先后顺序打印相关调用栈信息。6.一种检测对象的内存泄漏的装置,其特征在于,包括:待监控对象记录模块,用于根据预设测试规则进行测试,监控并记录待监控对象的引用计数操作及当前引用计数值,所述引用计数操作包括引用计数加1操作和引用计数减1操作;内存泄漏对象筛选模块,用于待测试结束后,读取每个待监控对象的引用计数值,筛选内存泄漏对象,所述内存泄漏对象为待监控对象中引用计数值不为零的对象;内存泄漏对象调用栈信息获取模块,用于再次重复步骤A的测试,监控并记录内存泄漏对象发生引用计数操作时对应的调用栈信息;内存泄漏代码块定位模块,用于分析调用栈信息,查找引用计数加1操作和引用计数减1操作不匹配的调用栈并定位其对应的代码块。7.根据权利要求6所述的检测对象的内存泄漏的装置,其特征在于,还包括:测试规则创建模块,用于创建测试规则,所述测试规则包括测试场景和测试流程。8.根据权利要求6所述的检测对象的内存泄漏的装置,其特征在于,所述待监控对象记录模块包括:第一日志创建模块,用于创建第一打印日志,配置第一打印项,所述第一打印项包括待2CN109710530A权利要求书2/2页监控对象的对象名、引用计数操作记录和当前引用计数值;第一日志打印模块,用于打印所述待监控对象的引用计数操作记录及当前引用计数值。9.根据权利要求8所述的检测对象的内存泄漏的装置,其特征在于,所述第一日志打印模块包括:初始化模块,用于初始化第一打印日志,当一个对象被创建时,打印一次引用计数加1操作,此时该对象的引用计数值为1。10.根据权利要求6所述的检测对象的内存泄漏的装置,其特征在于,所述内存泄漏对象调用栈信息获取模块包