[发明专利]一种内存泄露过程追溯方法及装置有效

专利信息
申请号: 201810316302.8 申请日: 2018-04-10
公开(公告)号: CN108664394B 公开(公告)日: 2021-12-14
发明(设计)人: 王凯峰;王俏;王天凤 申请(专利权)人: 奇安信科技集团股份有限公司
主分类号: G06F11/36 分类号: G06F11/36;G06F9/50
代理公司: 北京路浩知识产权代理有限公司 11002 代理人: 王莹;李相雨
地址: 100088 北京市西城区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 内存 泄露 过程 追溯 方法 装置
【权利要求书】:

1.一种内存泄露过程追溯方法,其特征在于,包括:

根据原生内存操作函数生成更新后内存操作函数,通过所述更新后内存操作函数对所述原生内存操作函数分配的第一内存添加头部和尾部,得到第二内存;

若根据预先获取的可执行程序,以及所述可执行程序对应保留栈帧的动态库的虚拟地址的起止地址判断获知所述更新后内存操作函数的地址在所述起止地址内,则确定所述第二内存可追溯;其中,所述起止地址为预先获取的起始地址和结束地址;所述更新后内存操作函数的地址包括所述更新后内存操作函数及其所有的上级调用函数的地址,且所述更新后内存操作函数的地址是所述更新后内存操作函数的虚拟地址;

所述可执行程序在执行过程中,所述可执行程序及其依赖的动态库调用内存操作函数时,调用所述更新后内存操作函数,根据当前函数的调用栈信息获取当前函数的调用链关系,将所述调用链关系存储在所述第二内存的头部,并将所述第二内存添加至全局链表中,或,判断所述当前函数为内存释放函数,将所述第二内存通过所述内存释放函数从所述全局链表中移除;

若所述可执行程序执行结束后所述全局链表不为空,则确定存在内存泄露,并根据所述更新后内存操作函数的调用关系追溯内存泄露的过程。

2.根据权利要求1所述的方法,其特征在于,所述方法还包括:

若后一次获取的调用链的调用次数大于前一次获取的调用链的调用次数,则确定存在内存泄露,并根据所述更新后内存操作函数的调用关系追溯内存泄露的过程。

3.根据权利要求1-2任一项所述的方法,其特征在于,所述根据原生内存操作函数生成更新后内存操作函数,具体包括:

在不改变可执行程序中调用所述原生内存操作函数的逻辑和调用代码的条件下,修改所述原生内存操作函数的预加载的环境变量或钩子函数,或重新定义所述原生内存操作函数的链接关系,或根据目标标识优先解析链接器。

4.根据权利要求1-2任一项所述的方法,其特征在于,所述头部中存储的信息包括:调用信息、分配的内存地址、实际使用的内存地址、分配的内存总大小、实际使用的内存总大小和内存越界确认信息。

5.一种内存泄露过程追溯装置,其特征在于,包括:

内存更新模块,用于根据原生内存操作函数生成更新后内存操作函数,通过所述更新后内存操作函数对所述原生内存操作函数分配的第一内存添加头部和尾部,得到第二内存;

追溯判断模块,用于若根据预先获取的可执行程序,以及所述可执行程序对应保留栈帧的动态库的虚拟地址的起止地址判断获知所述更新后内存操作函数的地址在所述起止地址内,则确定所述第二内存可追溯;其中,所述起止地址为预先获取的起始地址和结束地址;所述更新后内存操作函数的地址包括所述更新后内存操作函数及其所有的上级调用函数的地址,且所述更新后内存操作函数的地址是所述更新后内存操作函数的虚拟地址;

内存操作模块,用于所述可执行程序在执行过程中,所述可执行程序及其依赖的动态库调用内存操作函数时,调用所述更新后内存操作函数,根据当前函数的调用栈信息获取当前函数的调用链关系,将所述调用链关系存储在所述第二内存的头部,并将所述第二内存添加至全局链表中,或,判断所述当前函数为内存释放函数,将所述第二内存通过所述内存释放函数从所述全局链表中移除;

泄露追溯模块,用于若所述可执行程序执行结束后所述全局链表不为空,则确定存在内存泄露,并根据所述更新后内存操作函数的调用关系追溯内存泄露的过程。

6.根据权利要求5所述的装置,其特征在于,所述装置还包括:

泄露判断模块,用于若后一次获取的调用链的调用次数大于前一次获取的调用链的调用次数,则确定存在内存泄露,并根据所述更新后内存操作函数的调用关系追溯内存泄露的过程。

7.根据权利要求5-6任一项所述的装置,其特征在于,所述内存更新模块具体用于在不改变可执行程序中调用所述原生内存操作函数的逻辑和调用代码的条件下,修改所述原生内存操作函数的预加载的环境变量或钩子函数,或重新定义所述原生内存操作函数的链接关系,或根据目标标识优先解析链接器。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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