执行上下文感知的半自动化软件调试方法研究

来源 :武汉大学 | 被引量 : 1次 | 上传用户:wfn031641lpp
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
软件是信息系统的灵魂,而软件缺陷的存在严重影响了信息系统的可靠性和安全性,成为了信息系统稳定运行的重大隐患。固本清源,研究面向缺陷的软件可靠性及安全性增强方法,不仅能够降低信息系统发生故障的概率,更能够将信息安全从事后响应及修复向事前防御和安全确保推进。在诸多的软件缺陷中,软件编码过程中由于程序员的逻辑、设计不严谨、甚至是笔误等引入的程序错误是软件缺陷的主要组成部分。软件测试是检测及修正软件错误的重要手段及方法,然而,软件测试的作用仅局限在检测错误,基于测试的软件调试,包括错误定位、错误诊断及修复,是最为复杂和繁琐的工作。同时,程序结构的复杂性也加剧了软件错误修复不准确、不彻底等问题。因此,软件调试具有很高的自动化和精确性需求。本文认为,软件行为的不可知与不可控是软件调试困难的主要原因。软件错误的触发、感染链的传递与失效与执行上下文的动态变化息息相关,而执行上下文则可以从侧面反应软件的执行过程和行为变化,是解决软件调试复杂且易出错等问题的重要思路。基于此,本文的主要研究工作包括如下几个方面:1.针对测试用例的相似性会影响错误定位的准确性这一问题,本文提出执行差异化的错误定位方法PAFL,旨在利用执行过程分析以提高错误定位的准确性,降低测试用例相似性对代码覆盖率计算的影响。该方法首先分析程序在不同测试输入下的执行轨迹,以覆盖向量来组织执行的覆盖信息;随后再根据覆盖向量路径的不同用例的执行结果计算覆盖向量的错误可疑度;在计算出每条覆盖向量的错误可疑度之后,针对不同的代码语句,依据覆盖该代码语句的不同覆盖向量的错误可疑度以及失效在不同覆盖向量上的分布情况,计算代码语句的错误可疑度;最后分别依据执行路径的可疑度和代码的错误可疑度,对代码语句进行分组和降序。2.针对目前的基于覆盖率的错误定位方法中软件状态高度简化、粒度过大等问题,本文提出了基于切片的统计式错误定位方法。该方法首先利用程序输出的结构化信息细化程序的失效状态,随后借助于程序切片技术,动态分析直接或间接控制和数据支配程序失效的中间状态,切割出与失效存在依赖关系的代码片段,提高错误定位的精确性。3.以软件错误与运行态软件失效之间的关联分析为目标,本文首先指出基于覆盖率的错误定位方法中所得的错误可疑度与错误代码之间并不存在直接的因果关系,不能将错误可疑度直接作为判定代码出错与否的依据。考虑程序的失效过程,具有较高错误可疑度的高可疑代码是程序失效的重要特征,是错误定位的重要线索,同时高可疑代码与错误代码之间存在强关联性,这种关联性是提高错误定位的重要因素。为了挖掘这种关联性,本文基于覆盖向量建立执行轨迹分析及频繁集求解模型。该模型以高可疑代码为目标,通过在失效执行轨迹上的频繁集求解来挖掘该高可疑代码的关联代码,并以挖掘出的关联代码作为代码检查的对象。4.在目前的错误定位评估指标中,错误定位的结果应用太过理想化、与实际的调试过程脱节。针对此问题,本文探索了软件错误定位的应用方法,以错误定位结果为导向,结合程序的执行上下文,设计了一种用于差分式动态调试的测试用例选择与组合方法。该方法不同于回归测试等研究中的测试用例选择与优化,重点解决软件调试过程中针对错误的触发、理解及根源分析问题。5.作为一种特殊的软件错误,软件漏洞是众多安全事件的根源。然而,由于软件漏洞执行的隐蔽性,软件漏洞的调试异常困难,且会因源代码的不可取而变得难上加难。本文提出基于结构化污点的漏洞调试方法,该方法能够在二进制代码层次上定位内存数据损坏的触发点以及相应的执行上下文环境。基于结构化污点的漏洞调试方法基于以下两个发现:(1)程序的输入一般含有结构化的信息,即程序输入可分割为多个数据域,且每个数据域具有独立的语义;(2)导致内存数据损坏的异常输入违反的程序语义。综合这两个发现可以得知,内存数据的损坏会使得数据域的某个部分被非预期的指令访问,破坏了数据域的语义独立性。据此,本文提出的基于结构化污点分析方法通过动态数据域捕获、模式异常检测等手段检测数据流的分歧,随后回溯追踪造成数据域分歧的执行上下文和相关指令。
其他文献
为了提高无源雷达系统的测速精度,研究了基于多普勒频差的速度测量。利用典型航线的仿真试验结果表明,相比传统的位置差分测速,基于多普勒频差测速性能有较大提高。同时,给出四站
摘要:生本教育作为一种势在必行的教育理念,在其含义及基本观点上都有独特之处。在幼儿一日的生活教育中注入升本教育,使幼儿健康快乐地成长。  关键词:生本教育;幼儿;幼儿教育  中图分类号:G612 文献标志码:A 文章编号:1674-9324(2018)06-0040-02  生本教育是以生命为本的教育,是由郭思乐教授主持开展的一种新的教育思想,主张教育应实现由“师本教育”向“生本教育”的转变,即把
信任和信誉管理机制在协同计算系统中仍然起着积极重要的作用,目前面临的挑战是如何找到一种有效的信任管理机制来减少系统所受到的攻击。在协同计算中,节点在选择服务对象时
普适计算(Ubiquitous Computing)作为一种新的计算模式,其本质特征是信息空间与物理空间的融合和计算对人的透明性。智能空间(Smart Space)作为普适计算典型、具体而集中的体
文章主要对建筑室内设计专业中外建筑史课程的地位和存在的问题进行了分析,提出引入PBGS教学模式,对课程的体系、方法、模块进行整合和改革,采取多元化教学手段化解教学的难
退休年龄“固化”是指现行法定退休年龄并没有随着社会经济的发展及人口结构的改变而做出相应的调整。
文章介绍了一种利用单片机内部模拟比较器来构成A/D转换器的方法 ,给出了它的具体电路设计 ,分析了电路原理、转换过程及误差原因。并提出了转换过程中的误差消除的实用办法
回 回 产卜爹仇贱回——回 日E回。”。回祖 一回“。回干 肉果幻中 N_。NH lP7-ewwe--一”$ MN。W;- __._——————》 砧叫]们羽 制作:陈恬’#陈川个美食 Back to yield