[发明专利]一种基于执行索引和访问路径的堆区对象比较方法有效

专利信息
申请号: 201610158676.2 申请日: 2016-03-21
公开(公告)号: CN105824758B 公开(公告)日: 2018-09-21
发明(设计)人: 刘锐奇;顾天晓;马晓星;曹春 申请(专利权)人: 南京大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 南京知识律师事务所 32207 代理人: 张苏沛
地址: 210046 江苏*** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要: 发明公开了一种基于执行索引和访问路径的堆区对象比较方法,它包含以下步骤:指定一对匹配的程序执行点,以不同的输入执行同一版本程序(或者以同一输入执行不同版本的程序),在匹配的程序执行点捕获相应的堆区快照;赋予每一个快照中每一个对象一个ID;通过ID将不同快照中的对象进行匹配并递归比较匹配的对象;根据匹配结果,生成差异性度量表。本发明与现有的技术相比,其显著优点是:本发明通过结合两种不同的基本匹配算法,克服了访问路径匹配算法中不能有效匹配数组元素的问题,能够更高效、准确的进行对象比较分析。
搜索关键词: 一种 基于 执行 索引 访问 路径 对象 比较 方法
【主权项】:
1.一种基于执行索引和访问路径的堆区对象比较方法,其特征在于,它包含以下步骤:步骤一、指定一对匹配的程序执行点,以同一输入执行不同版本的程序,或者以不同的输入执行同一版本的程序,在匹配的程序执行点捕获相应的堆区快照;步骤二、赋予每一个快照中每一个对象一个ID;步骤三、通过ID将不同快照中的对象进行匹配,比较匹配的对象,从而获得每对快照的差异性度量值;所述步骤一中获取堆区快照的步骤包括:步骤1.1 指定匹配点的Call String;步骤1.2 通过代码插桩框架在方法的入口插入构建并检测Call String的代码,同时记录每个对象创建时的Call String;步骤1.3 执行插桩后的程序,若检测到匹配的Call String,则生成堆区快照;上述步骤1.2 中构建和检测Call String,记录对象创建的代码执行过程如下:步骤1.2.1 初始化调用树,从程序的主线程入口开始记录;步骤1.2.2 在每一个函数的入口,都记录下当前方法的ID、调用该方法的指令,以及它的执行次数;步骤1.2.3 当拦截到新的对象创建时,生成该对象对应执行点的Call String,并记录到该对象中,同时保存到一个全局的哈希表中;步骤1.2.4 当检测到执行点的Call String与匹配点的Call String相同时,就生成当前堆区的快照。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/patent/201610158676.2/,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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