[发明专利]一种内存泄漏探测方法无效
| 申请号: | 201010131849.4 | 申请日: | 2010-03-23 | 
| 公开(公告)号: | CN101814049A | 公开(公告)日: | 2010-08-25 | 
| 发明(设计)人: | 汪小林;罗英伟;刘毅;李晓明 | 申请(专利权)人: | 北京大学 | 
| 主分类号: | G06F11/34 | 分类号: | G06F11/34;G06F11/36 | 
| 代理公司: | 北京君尚知识产权代理事务所(普通合伙) 11200 | 代理人: | 冯艺东 | 
| 地址: | 100871 北*** | 国省代码: | 北京;11 | 
| 权利要求书: | 查看更多 | 说明书: | 查看更多 | 
| 摘要: | |||
| 搜索关键词: | 一种 内存 泄漏 探测 方法 | ||
1.一种内存泄漏探测方法,其步骤为:
1)虚拟机管理器截获内存资源的申请函数和释放函数的地址,从而获取分配的动态内存信息;所述动态内存信息包括动态内存的起始地址、长度、访问时间和调用IP地址;
2)根据动态内存的起始地址和长度,计算该动态内存所跨越的所有内存监控单元;
3)在影子页表中删除对所述内存监控单元的虚拟地址到机器地址的映射关系;
4)虚拟机陷入时,虚拟机管理器监测2)中的内存监控单元是否被访问;
5)监控策略模块将设定时间内未被应用程序访问的内存监控单元所在的动态内存项视为存在内存泄漏嫌疑的动态内存项。
2.如权利要求1所述的方法,其特征在于如果应用程序的某一调用IP地址持续申请动态内存且部分不释放,则将该IP地址所分配的内存项视为发生内存泄漏嫌疑的动态内存项。
3.如权利要求1所述的方法,其特征在于所述动态内存信息的获取方法为:
1)在函数地址处插入陷入指令;所述陷入指令为能够使得虚拟机陷入到虚拟机管理器的指令;该被植入陷入指令的函数称为受监控函数;
2)运行在虚拟机中的应用程序调用该受监控函数,陷入虚拟机管理器;
3)虚拟机管理器根据该受监控函数的类别更新应用程序占用内存资源的信息;该受监控函数如果是资源申请函数则增加内存占用信息,如果是资源释放函数则删除相应的内存信息;
4)虚拟机管理器模拟执行被替换指令,如果该受监控函数是资源申请函数,则在该陷入指令的下一条指令处再插入一陷入指令;函数地址中被所述陷入指令替换掉的指令称为被替换指令;
5)虚拟机管理器命令该虚拟机继续执行该受监控函数,虚拟机执行结束后,返回到调用处的下一条指令;
6)虚拟机返回到调用处的下一条指令,执行该指令时陷入虚拟机管理器,虚拟机管理器分析该受监控函数返回的结果得到动态内存的起始地址、长度、访问时间,同时根据返回处地址得到调用IP地址。
4.如权利要求3所述的方法,其特征在于受监控函数的调用IP地址以及该调用IP地址的陷入点类型存放于快速查找树中,通过快速查找树查找所述调用IP地址。
5.如权利要求4所述的方法,其特征在于虚拟机管理器处理所述陷入指令时,首先判断陷入地址是否在所述快速查找树中,如果在,则查找陷入点的类型:如果陷入点是资源申请函数,则分析并记录其参数,并在返回点处插入一陷入指令,申请成功后记录动态内存信息;如果陷入点是返回点,则分析函数返回结果;如果陷入点是资源释放函数,则将该函数动态内存的分配记录删除。
6.如权利要求3所述的方法,其特征在于所述虚拟机管理器根据该受监控函数的类别更新应用程序占用内存资源的信息时,获取该受监控函数的调用栈。
7.如权利要求6所述的方法,其特征在于从调用栈中获取被调用函数返回地址的方法为:虚拟机管理器逐条读取堆栈中的数据,如果该数据落在代码地址空间中,则该数据被认为是被调用函数的返回地址。
8.如权利要求1所述的方法,其特征在于判断所述内存监控单元是否被访问的方法为:
1)虚拟机管理器在影子页表中清除每个内存监控单元的页表项,同时清除快表;
2)当虚拟机发生缺页中断时,判断被访问地址是否在所需要被监控的内存块,如果在,则记录被访问的时间和类型,解除对此内存块的监控。
9.如权利要求1所述的方法,其特征在于所述步骤5)的实现方法为:
1)监控策略模块从虚拟机管理器获取当前未被释放的动态内存的信息列表;
2)监控策略模块从所述信息列表中筛选出需要监控的内存段,并发送命令给虚拟机管理器对其进行监控;
3)监控策略模块汇总虚拟机管理器返回的内存段监控信息,将设定时间内未被应用程序访问的动态内存项视为存在内存泄漏嫌疑的动态内存项。
10.如权利要求1所述的方法,其特征在于所述监控策略模块以进程的方式运行;所述内存监控单元为内存页面。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201010131849.4/1.html,转载请声明来源钻瓜专利网。





