基于源代码的缺陷半自动化分析

来源 :中国科学院软件研究所 | 被引量 : 0次 | 上传用户:wml889900
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
缺陷,是导致程序不能正常运行的错误或瑕疵。由于缺陷的存在,使程序运行轻则结果出错,重则崩溃退出,甚至造成人力、物力、财力的重大损失。因此,程序开发者们总是尽可能的避免程序缺陷的出现,将无缺陷的代码作为最高目标。使用测试用例对软件产品进行缺陷检测,效率低且容易出错。人工代码审计又对参与人员的能力提出了很高的要求。人们希望尽可能的对这些缺陷进行自动化查找,源代码分析检测工具应运而生。   源代码分析检测的优点,就在于它的自动化。由于实际代码的复杂性,对分析检测工具有了更高的要求,减少漏报和误报是很重要的两个方面。近二十年来,源代码分析检测方法有了很大的发展。虽然目前有很多检测缺陷的方法,但缺少一种面向编程人员,在易用性和功能性方面比较均衡的工具(商业版本过于昂贵、开源版本不够强大)。而本文就是在这方面的一次探索和尝试。   本文以GCC4作为基础平台,首次实现了一个用于描述缺陷的框架语言BDL(Bug Description Language),包括5大部分,分别是:用于解析缺陷语言的BDL前端解析器、用于保存缺陷规则的BDL中间代码、从GCC4获取代码信息的BDL后端、依照规则进行状态转换的BDL自动机、以及提供模式匹配和错误回溯的BDL内建函数。与其它开源软件相比,使用BDL,用户可以更容易与准确的自定义和查找多种逻辑缺陷。   为了提高检测能力和效率,本文还在路径遍历、全局分析、缓冲、注释支持等方面作了大量优化,使得BDL不仅仅是一个系统原形,还能查找真实复杂代码中的自定义缺陷,同时,又在易用性和功能性方面实现了较好的平衡。
其他文献
合成孔径雷达(Synthetic Aperture Radar,SAR)是一种主动式微波传感器,SAR成像由于具备全天时、全天候、信号特征丰富、分辨率高这些优势,在国内外军用、民用领域,都具有重要价值
SI2P系统是一个基于标准SIP协议的P2P网络定位模型。它基于低耦合的层次化设计,保持对标准SIP协议栈的完全兼容。SI2P协议栈采用多种类型的SIP注册消息来进行通信:节点注册消息
纹理合成是计算机图形学的一个主要研究方向,在许多领域有着重要的应用,因此受到了广泛的关注。向量场可视化则是科学计算可视化的热门研究领域,它可以将科学与工程计算等产生的
空间运动图像受空间射线和拍摄环境等各方面制约,图像质量普遍不高。采用空间去噪与增强技术,对空间运动图像进行噪声消除与增强,具有重要的理论意义和应用价值。本文针对空
随着半导体制造工艺的提高,信号的上升/下降时间越来越短,数字电路系统中的信号完整性问题越来越突出。由于反射、串扰等带来的信号噪声和传输延时严重地影响着系统的性能,反复
无线通信技术的成熟和移动设备的普及推动了移动自组网络(MANET)技术的快速发展及其广泛应用。MANET的动态性及其不能依赖网络基础设施的特点对服务发现协议提出了新的挑战。
近年来,随着中国信息化程度的不断提高,监控行业也获得了广阔的发展空间。视频监控经历二十多年的发展历程,已经深入到了社会生活的各个方面;伴随着计算机高新技术的飞速发展,视频
无线传感器网络(WirelessSensorNetworks)是近年来计算机科学和应用领域的热点研究方向之一,研究方向包括路由协议、MAC层协议、安全技术等方面。在无线传感器网络的安全技术
移动计算系统具有用户位置不固定、设备类型多种多样、可用资源贫乏、以及执行环境上下文灵活多变等特点,这为移动应用软件的设计提出了新的挑战。为此,移动应用需要引入上下文
抢占式实时操作系统中的任务在争夺共享资源时会引起死锁和优先级反转,它们会降低系统的可调度性。优先级顶协议是一种优先级驱动的抢占式调度协议,它能够避免死锁和限制优先级