[发明专利]基于程序约束构建的多线程程序输出唯一性检测与证据生成方法有效
申请号: | 201410320129.0 | 申请日: | 2014-07-07 |
公开(公告)号: | CN104077226A | 公开(公告)日: | 2014-10-01 |
发明(设计)人: | 刘烃;张晓东;刘沛;俞乐晨;郑庆华 | 申请(专利权)人: | 西安交通大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 西安智大知识产权代理事务所 61215 | 代理人: | 段俊涛 |
地址: | 710049*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 一种基于程序约束构建的多线程程序输出唯一性检测与证据生成方法,根据多线程程序语义构建约束表达式,将输出唯一性验证问题转化为约束求解问题,采用约束求解器检测是否存在不同的输出,并生成说明不同输出的反例执行路径,首先,插桩被检测程序,执行此程序并得到执行路径;其次,根据多线程程序执行语义,将执行路径转化为无量词一阶逻辑表达式,此约束表达式涵盖所有可行的线程交织;然后,针对一次运行的输出结果,构建唯一性验证条件;最后,利用约束求解器验证是否存在一条路径使得输出值与运行结果不一致,本方法可以检测出在给定输入下,多线程程序的输出是否唯一;如果存在输出不唯一的情况,则展示出反例序列以说明其触发过程。 | ||
搜索关键词: | 基于 程序 约束 构建 多线程 输出 唯一 检测 证据 生成 方法 | ||
【主权项】:
一种基于程序约束构建的多线程程序输出唯一性检测与证据生成方法,其特征在于,包括如下步骤:S1)将监控代码植入待测程序,以记录程序的执行过程;S2)在给定输入下,执行已插桩程序,生成路径记录文件;S3)预处理执行路径以便于约束构建;S4)在程序运行结尾处自动添加属性条件,针对多线程程序的运行输出,将输出唯一性条件ρ以assert的格式插入程序;S5)根据程序执行语义将执行路径中状态转移、线程交织关系转化为无量词一阶逻辑表达式,构建蕴含了所有可能的交织序列的多线程程序执行路径约束模型F;S6)针对唯一性条件ρ,利用约束求解器验证
是否有解。S7)如果有解,则表示存在多种不同的输出,并生成证据序列;如果无解,则表示此输出在此输入下唯一。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安交通大学,未经西安交通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201410320129.0/,转载请声明来源钻瓜专利网。
- 上一篇:一种香兰素的制备方法
- 下一篇:超抗扭多台肩的全密封锥管螺纹连接装置