基于变量跟踪的运行时错误现场分析工具研究

来源 :重庆大学 | 被引量 : 0次 | 上传用户:wzsman
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
C程序运行时错误是程序错误中较难发现的一类错误,因为运行时错误是程序在运行中产生的错误,具有隐蔽性强、不可预见的特征。比如常见的运行时错误包括数组越界、动态存储分配、内存溢出、指针非法引用、类型不一致的隐式转换等,这些错误是在编译期不能被发现的错误。随着程序规模不断的增大和程序功能越来越复杂,这些运行时错误即使在测试阶段也难被发现。特别是在实际运行环境中,随着程序的运行产生的那些潜在、未知的意外错误,目前的错误检测工具不能检测出这些错误。例如程序的意外停止、多线程程序产生的异常行为、逻辑错误、不可靠数据源引起的错误等,这些错误在运行期发生后,需要借助传统的调试手段分析、查找错误。但是这种方式有不足之处,其主要体现在下面两个方面:完全依靠人工介入、工作量较大;对于某些异常行为和多线程程序不能重现真实的执行环境。如果能够捕获程序执行时的变量信息,那么运行时错误现场也会被捕获,进而以此为依据分析查找错误。对此本文提出了基于变量跟踪的运行时错误现场分析技术。本文的主要工作包括以下几方面:①介绍本文的研究背景、程序运行时错误分析技术及工具的现状与不足,提出一种基于变量跟踪的运行时错误现场分析方法。②用源代码插装技术,实现一个可以供用户选择的插装范围的轻量级插桩程序,包括所有变量、指定变量、函数范围内的插装。③利用并改进现有的程序分析技术,提供两种错误分析查找辅助手段。一种是利用程序信息流分析技术对源程序进行切片减少错误查找范围;另一种是利用测试来获取运行时依赖信息,建立模型计算出可能出错语句的可疑度,进一步缩小错误排查范围。④实现运行时错误现场分析工具(Runtime Fault SiteAnalysis),提供多种数据视图窗口。本文研究了基于变量跟踪的自动插装技术,目的是捕获程序运行中变量的动态信息,同时提供了两种运行时错误分析手段。最后基于以上技术实现了运行时错误现场分析工具RFST,为程序运行时错误分析提供错误现场和辅助分析手段。在应用中,有较强的实用性,是现有运行时错误查找工具的有力补充。
其他文献
强化学习是一种通过与环境的交互,将状态映射到动作,以获取最大累积奖赏的机器学习方法。在大规模和连续状态或动作空间强化学习问题中,通过使用函数逼近方法拟合策略形成了近似
不同的人会有不同的步态,这种差异性可以用动态足底压力成像数据(DPPI)来表示出来。不同于之前基于静态特征的步态识别方法外,本文提出了一种新的步态识别技术。本文从动态足底
电力系统无功优化是指在已知网络结构参数和运行参数的情况下,在满足各种约束条件的前提下,通过现代化的技术或者人工智能算法,合理的调节控制变量(发电机的机端电压、有载调压变
云计算时代数据量的迅猛增长,从可扩展性、可用性和安全性等多个方面对数据中心提出了新的挑战,以满足数据量增长的高运算能力和强存储能力的要求。而随着高速、低延时、大规模
手指与手势的实时识别长期以来都是计算机视觉研究的重点与难点。体感交互技术的发展开创了新型的人机交互方式,也为这一问题带来了新的解决方案。本文主要实现了一种基于深度
随着互联网和无线网的日益普及,计算机病毒正变得日益猖獗。实践证明,仅仅依赖杀毒软件来抵御电子病毒是远远不够的。对病毒在网络上的传播机制进行理论分析,从中找到有效的防范
随着信息技术与计算机网络的飞速发展与实际应用,数字媒体得到了广泛传播。虽然人们从中获得了许多便利,但是,诸多安全隐患也相应得显现了出来:各种媒体信息都可能被非法复制、修
目前我国正处于老龄化社会阶段,由于子女大多出外工作,老人家庭空巢率也在不断增加,对智能化的看护系统的需求更加紧迫。而智能化看护系统的关键问题就在于对老人在日常生活中的
分布式移动社交网络是目前移动网络应用研究中的热点之一,而数据传输作为其中的一个关键性问题得到了广泛的关注。传统的移动自组织网络中的路由依赖于端到端的连接,已经无法适
日常生活产生了大量的互联网用户行为数据,包括在线电子商务交易数据。为了获得其中的时序相关,空间相关以及场景相关的模式,需要从不同角度对数据进行分析。现有方法针对时序交