[发明专利]针对Shadow Memory内存泄漏检测机制的内存压缩方法在审
申请号: | 202210680494.7 | 申请日: | 2022-06-15 |
公开(公告)号: | CN115080235A | 公开(公告)日: | 2022-09-20 |
发明(设计)人: | 史晓华;郝浩 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 周长琪 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 shadow memory 内存 泄漏 检测 机制 压缩 方法 | ||
1.一种针对Shadow Memory内存泄漏检测机制的内存压缩方法,其特征在于,包括如下步骤:
(一)设应用场景中存储对象的最小尺寸为k字节,则当相邻两个对象的指针相差不超过2k字节时,所述两个对象共用同一个对象标识单元;
(二)使用如下两种方案之一或者组合,消除对象漏报问题:
方案1,当出现对象覆盖现象时,对覆盖涉及的对象双方信息输出日志,作为泄漏检测模块输出的补充信息;
方案2,在不同泄漏检测周期,泄漏检测模块初始化不同的覆盖策略,为先来对象优先或后来对象优先;采用先来对象优先策略时,当出现对象覆盖现象时,将不更新对象标识单元;采用后来对象优先策略时,当出现对象覆盖现象时,更新对象标识单元为后来对象的内容;将多个不同覆盖策略的泄漏检测周期的泄漏检测模块的输出进行综合,消除对象漏报问题。
2.根据权利要求1所述的方法,其特征在于,所述的步骤(二),采用方案2更新ShadowMemory的机制如下:
步骤1,当运行时系统中的插桩代码检测到某个分配点p创建了新对象时,插桩代码将分配点信息和该对象的指针addr转发给Shadow Memory;
步骤2,Shadow Memory根据addr检索对象标识单元,检索位置为addr/R,其中R为压缩单元,再检查该对象标识单元是否已经被其他对象占用,如果没有被占用,跳转到步骤4;否则,继续执行步骤3;
步骤3,对象标识单元已经被占用,检测泄漏检测模块初始化的覆盖策略是否为后来对象优先,若是,继续执行步骤4;否则,转步骤5执行;
步骤4,向对象标识单元中写入当前捕获的对象的分配点以及访问信息;
步骤5,将当前对象的访问点信息存储到访问点表中,根据存储在Shadow Memory中的hash(p)检索实际访问点信息;hash(p)是分配点p的哈希值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210680494.7/1.html,转载请声明来源钻瓜专利网。