[发明专利]一种程序中基于动态符号执行的自动错误定位方法有效
申请号: | 201510132968.4 | 申请日: | 2015-03-25 |
公开(公告)号: | CN104750608B | 公开(公告)日: | 2017-10-27 |
发明(设计)人: | 马晓星;许畅;吕建;金昊 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京钟山专利代理有限公司32252 | 代理人: | 戴朝荣 |
地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种程序中基于动态符号执行的自动错误定位方法,包括蜕变模型构造、测试引擎、自动错误定位引擎和错误定位结果整合;蜕变模型构造利用蜕变关系将没有Oracle的程序构造出有Oracle的程序,通过测试引擎进行测试,找到多个导致错误的输入,进而自动错误定位引擎利用动态符号执行技术,从这多个错误输入出发,分别通过分支倒转技术定位出原程序中的可能错误点,最后错误定位结果整合模块将多个定位结果利用投票算法进行整合,得到最后的错误点,并将其与相应的错误执行路径一起报告给用户;本发明针对没有Oracle的程序进行自动错误定位,仅用户根据蜕变关系在预定义的框架内填充少量代码构造蜕变模型程序,过程高度自动化、人工干预少、使用方便。 | ||
搜索关键词: | 一种 程序 基于 动态 符号 执行 自动 错误 定位 方法 | ||
【主权项】:
一种程序中基于动态符号执行的自动错误定位方法,其特征在于,具体步骤包括:步骤一、针对原程序中蕴含的蜕变关系,为原程序构造蜕变模型,使得原程序转变为含有Oracle的程序;步骤二、构建测试引擎,随机生成输入并执行步骤一中构造的每一个蜕变模型,为每一个蜕变模型找到导致蜕变模型产生错误的输入;步骤三、构建自动错误定位引擎,针对每一个蜕变模型,启动动态符号执行,定位出原程序代码中的错误行;步骤四、对步骤三得到的代码中的错误行进行错误定位结果整合,采用投票机制得到最终的错误定位结果;步骤一中,所述构造蜕变模型的具体流程包括:预定义蜕变模型的程序框架并内置输入转换规则与蜕变关系检查规则,用户在所述程序框架内选择内置输入转换规则进行输入转换;选择蜕变关系检查规则进行蜕变关系检查;或者根据需要重写、扩展输入转换规则和蜕变关系检查规则,从而构造出有Oracle的程序。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201510132968.4/,转载请声明来源钻瓜专利网。
- 上一篇:数据储存装置以及快闪存储器控制方法
- 下一篇:一种动态污点数据分析方法及装置