基于断言制导的多线程符号执行的设计与实现

来源 :西安电子科技大学 | 被引量 : 0次 | 上传用户:wlxqzs
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
现代社会,软件已经成为最重要的基础设施之一,在很多行业中发挥着不可或缺的作用。同时,软件的安全性也越来越受人们的重视。软件测试作为保障软件可靠性的重要手段之一,一直以来都是国内外科研人员的研究热点。动态符号执行技术是软件测试领域的前沿技术,从诞生以来一直受人们的广泛关注。国内外研究人员基于动态符号执行技术开发了很多实用的软件测试工具,KLEE就是其中的佼佼者。然而,KLEE只能对单线程程序进行符号执行。鉴于此,瑞典洛桑联邦理工学院的Stefan Bucur与其合作伙伴在KLEE的基础上开发了并行符号执行工具Cloud9,实现了对多线程程序的符号执行。但是Cloud9在对多线程程序进行符号执行时没有考虑线程交错调度问题,不能完全探索多线程程序的所有路径。因此,本文在Cloud9的基础上,设计并实现了可以覆盖所有路径分支的一般多线程符号执行框架,并在此基础上,提出了基于断言制导的多线程符号执行方法。本文的主要贡献包括以下三点:在研究了符号执行基本理论和Cloud9对多线程程序符号执行的方法的基础上,给出了可以覆盖所有路径分支的一般多线程程序符号执行框架,从三个方面来讲述:首先,对多线程符号执行的相关概念进行描述,为后续算法的提出做准备;其次,引入广义交错图(Genernalized Interleaving Graph,GIG)的概念,实现对多线程符号执行过程的模型化;最后,用算法的形式给出了一般多线程符号执行的基本过程。为了缓解多线程符号执行面临的路径爆炸问题,本文在一般多线程符号执行框架的基础上,提出了基于断言制导的多线程符号执行方法。然后,给出了该方法中重要模块的设计方案,最终在Cloud9上实现了该方法。使用软件验证竞赛(The 2018 Software Verfication Competition)提供的多线程程序测试用例对本文提出的方法进行了测试,测试结果表明了该方法对于删减多线程符号执行的冗余执行具有可行性,即可以在一定程度上缓解多线程符号执行的路径爆炸问题。
其他文献
水彩画的发展历程是漫长、悠久、曲折的。该文主要研究中国水彩画的产生与发展历程。
通过内容分析和批评性语篇分析(CDA)相结合的方法,探讨了国际新闻制作中国家间经济依赖与媒体偏见的关系。这篇论文包含一个基本命题,即经济相互依存度高与更积极的报道相关
当今, 城市地面大都被沥青或水泥混凝土覆盖, 逢雨天, 大量雨水经下水道流走, 不但增大了防洪压力, 地下土壤也长期得不到雨水滋润, 导致城市生态环境破坏, 甚至地面下沉、建
电力变压器作为电力系统的关键设备,如果在运行过程中出现故障,不仅会造成电力中断,同时还会带来难以估量的经济损失。根据电力变压器的相关故障统计,绝缘故障是变压器的主要
在输电线路的施工以及使用过程中,输电线路是确保整个输电系统正常运行与管理的中心环节。它的主要任务就是对电能进行合理分配与输送,同时将各个变电站同发电厂之间有机的联
在近十五年乡村建设政策的持续推动下,中国乡村的建设发展渐趋合理与完备。随着新农村建设、美丽乡村建设和乡村振兴战略的政策递进,乡村的发展已经从单纯看重经济方面的成果
根据习总书记在全国高校思想政治工作会议精神谈到的高校社会主义接班人人才培养的核心问题--“高校培养什么样的人、如何培养人以及为谁培养人”.据此,试图将国际贸易实务课
目的:本实验采用HPLC-MS建立了快速定性定量人参皂苷的方法,研究人参皂苷Rc、Rd、Re对人神经胶质瘤SHG-44、U251MG细胞的抗肿瘤作用。方法:在人参皂苷的定性、定量分析中,运
19世纪60年代初,大量的基督新教传教士在条约保护下进入山东。通过常年游历、开办学校和教会医院等形式,传教士深入山东各地开展传教工作。在这一过程中,传教士以书籍、日记、游记、书信等为载体将他们眼中的山东社会作了详细记录和阐述,这些记录和阐述的内容就成为了基督新教传教士群体视野中的山东形象。这一“形象”并非是山东社会本身,而是被传教士精心选择和修剪后的主观认知,是立足于山东社会而又经传教士们加工的产
第三方支付的发展在对传统货币体系造成冲击的同时,也改变了金融消费者的交易习惯、生活规划和投机预期,进而影响金融消费者对传统货币的持币需求。本文基于凯恩斯流动性偏好