首页> 中文学位 >资源泄露故障静态分析的关键技术研究
【6h】

资源泄露故障静态分析的关键技术研究

代理获取

目录

声明

摘要

第一章 绪论

第一节 研究背景与意义

第二节 资源泄露静态分析研究现状

第三节 本文的主要工作与创新点

第四节 论文的结构安排

第二章 资源行为精简切片构建方法

第一节 研究意义

第二节 资源泄露故障模式

2.2.1 基本术语

2.2.2 资源管理时序属性

2.2.3 内存泄露和文件句柄丢失实例

2.2.4 资源泄露判定模式

第三节 资源行为切片产生的准则

第四节 资源行为切片产生方法

2.4.1 词法语法分析构建CFG

2.4.2 Definition-use数据流分析获取前向切片

2.4.3 基于CFG符号执行获取值流条件

第五节 本章小结

第三章 基于扩展递推链代数的循环迭代次数估算

第一节 循环分析的意义

第二节 递推链代数

第三节 扩展的递推链代数运算规则

第四节 基于扩展递推链代数的循环迭代次数估算

3.4.1 基本术语

3.4.2 单重while循环分析

3.4.3 循环摘要Loop Summery

3.4.4 多重循环迭代次数估算

第五节 基于故障属性的循环展开策略

第六节 循环次数估算实验结果分析

第七节 本章小结

第四章 基于抽象函数摘要模板的上下文敏感分析

第一节 抽象函数摘要模板的研究意义

第二节 抽象函数摘要模板

4.2.1 函数间名字空间转换关系

4.2.2 抽象函数摘要分类

第三节 基于抽象函数摘要模板的跨函数分析

4.3.1 利用AFST函数间分析实例

4.3.2 抽象函数摘要模板生成算法

4.3.3 抽象函数摘要模板实例化

第四节 抽象函数摘要模板及实例化分析框架

4.4.1 构建函数调用图PCG(Procedure Call Graph)

4.4.2 函数间的映射关系

第五节 本章小结

第五章 资源泄露故障静态检测原型系统和实验结果

第一节 原型系统的设计与实现

5.1.1 系统框架结构及主要模块

5.1.2 系统操作流程

5.1.3 评价标准

第二节 复杂度分析

第三节 实验结果及分析

5.3.1 资源行为精简切片节点统计及对比分析

5.3.2 循环针对性策略对分析精度的提高

5.3.3 基于符号的抽象函数摘要模板对分析精度产生的影响

5.3.4 RL_Detector系统的实验结果及对比分析

第四节 本章小结

第六章 总结与展望

第一节 本文研究工作总结

第二节 未来研究方向

参考文献

致谢

个人简历 在学期间发表的学术论文与研究成果

展开▼

摘要

随着软件开发技术的不断发展,软件系统的规模越来越大,其结构也日益复杂,从而使软件系统的质量越来越难以保障。其中,资源泄露故障是影响软件系统稳定性和可靠性最危险的安全漏洞之一。研究表明资源泄露故障是导致软件系统停机故障和服务型软件系统老化的主要原因,并且在软件中发生的比例非常高。因此对软件系统进行资源泄露故障检测的研究具有极大的现实意义。
  静态分析方法通过对源程序的静态属性进行分析和评估,找出可疑的故障之处。静态分析技术的特点使其在故障检测方面具有诸多优点,因此对它的研究越来越受到重视。但目前对资源泄露故障的静态分析相关研究中,检测精度有待提高,其实际可用性有待改善。这是由于分析时采用的控制流模型不够精确,对循环问题的简化处理,跨函数分析时无法做到完全的上下文敏感,以及对复杂数据结构的处理等问题不够精确。
  众所周知,对源程序进行高精度的静态分析通常其复杂度比较高,因此本文试图在精度、易用性、可扩展性等方面追求一个好的平衡。本文致力于研究如何在接近源程序语义的前提下,产生资源行为精简切片,并通过多种技术提高静态分析精度的问题。为此针对这些问题提出了资源行为精简切片构建方法、循环处理策略,以及用于实现完全上下文敏感的抽象函数摘要技术,并在初步检测结果基础上进一步优化给用户产生可读性好的故障报告。
  根据上述研究问题和研究思路,本文所进行的主要研究工作和创新点包括:
  (1)本文提出一种资源行为精简切片构建方法。目前已有的资源泄露检测多采用路径敏感方法,但是由于采用的程序语义抽象方法、路径爆炸等问题,效率和精度都有待提高。本文首先根据资源泄露故障模式提出了资源行为精简切片准则,然后根据切片准则构建资源行为切片。所提出方法首先基于控制流图进行Def-Use数据流分析获得资源行为前向切片,然后基于前向切片从资源释放点后向遍历对前向切片进行优化,最后通过符号执行获取切片的数据流约束条件。本方法实际是一种多层渐进方式,首先基于前向切片,凡是对于没有释放点的资源即可判断该资源被泄露。否则,需在优化后的切片上根据值流条件判断资源分配点到释放点数据流的可达性。此方面的研究是对目前流敏感静态分析控制流模型精简优化技术,减少控制流中的节点数以及状态迭代的计算量。
  (2)针对已有静态分析方法不能精确分析循环的问题,提出一种基于扩展递推链代数的循环次数估算方法。目前静态分析方法为了降低复杂度,简单地将循环展开1次避免路径爆炸,或者通过设置时间阈值来终止循环展开,但循环与资源泄露等故障有密切的关系,因此本文针对静态分析中的循环处理问题提出了针对性措施。该方法采用基于递推链代数将循环变量进行统一表示,根据运算规则化简并推导出循环条件关于迭代次数L的闭形式函数,将闭形式函数交由约束求解器进行求解,并将该信息增加到控制流图中用于循环的进一步分析,然后根据故障属性与循环的关系确定展开循环的次数,从而指导静态分析中对循环的处理,进一步提高静态分析的精度。此方面的研究是静态分析中对循环具有针对性处理的创新型工作。
  (3)针对已有的函数摘要不能精确地实现上下文敏感分析的问题,本文提出基于符号的抽象函数摘要的上下文敏感分析技术。目前函数间分析采用的函数摘要方法无法全面考虑上下文信息的传递(如变量的逃逸、参数的传递、函数返回等)。基于符号的抽象函数摘要模板(Abstract Function Summary Template,即AFST)全面总结了变量、参数、返回值在函数间名字空间转换关系,从而产生基于符号的抽象函数摘要模板,然后根据函数调用点上下文变量信息对抽象函数摘要模板进行实例化。此方面的研究是函数间分析时对函数摘要进行优化实现上下文敏感分析的创新性工作。
  在基准测试程序SPEC2000、开源数据集、一些文献以及自组数据集上,对本文所提出的静态分析方法分别进行了实测效果的对比分析。本文所提出的方法可实现在高效率的基础下对资源泄露故障的检测保持较低的误报率,表明了本方法的可行性和有效性。

著录项

相似文献

  • 中文文献
  • 外文文献
  • 专利
代理获取

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号