题名 | 基于源代码的缺陷半自动化分析 |
作者 | 曲富平 |
学位类别 | 博士 |
答辩日期 | 2006-06-02 |
授予单位 | 中国科学院软件研究所 |
授予地点 | 软件研究所 |
关键词 | 缺陷 静态分析 GCC4 BDL状态机转换 |
中文摘要 | 缺陷,是导致程序不能正常运行的错误或瑕疵。由于缺陷的存在,使程序运行轻则结果出错,重则崩溃退出,甚至造成人力、物力、财力的重大损失。因此,程序开发者们总是尽可能的避免程序缺陷的出现,将无缺陷的代码作为最高目标。使用测试用例对软件产品进行缺陷检测,效率低且容易出错。人工代码审计又对参与人员的能力提出了很高的要求。人们希望尽可能的对这些缺陷进行自动化查找,源代码分析检测工具应运而生。 源代码分析检测的优点,就在于它的自动化。由于实际代码的复杂性,对分析检测工具有了更高的要求,减少漏报和误报是很重要的两个方面。近二十年来,源代码分析检测方法有了很大的发展。虽然目前有很多检测缺陷的方法,但缺少一种面向编程人员,在易用性和功能性方面比较均衡的工具(商业版本过于昂贵、开源版本不够强大)。而本文就是在这方面的一次探索和尝试。 本文以GCC4作为基础平台,首次实现了一个用于描述缺陷的框架语言BDL(Bug Description Language),包括5大部分,分别是:用于解析缺陷语言的BDL前端解析器、用于保存缺陷规则的BDL中间代码、从GCC4获取代码信息的BDL后端、依照规则进行状态转换的BDL自动机、以及提供模式匹配和错误回溯的BDL内建函数。与其它开源软件相比,使用BDL,用户可以更容易与准确的自定义和查找多种逻辑缺陷。 为了提高检测能力和效率,本文还在路径遍历、全局分析、缓冲、注释支持等方面作了大量优化,使得BDL不仅仅是一个系统原形,还能查找真实复杂代码中的自定义缺陷,同时,又在易用性和功能性方面实现了较好的平衡。 |
语种 | 中文 |
公开日期 | 2011-03-17 |
页码 | 66 |
内容类型 | 学位论文 |
源URL | [http://ir.iscas.ac.cn/handle/311060/6380] ![]() |
专题 | 软件研究所_中科院软件所_中科院软件所 |
推荐引用方式 GB/T 7714 | 曲富平. 基于源代码的缺陷半自动化分析[D]. 软件研究所. 中国科学院软件研究所. 2006. |
个性服务 |
查看访问统计 |
相关权益政策 |
暂无数据 |
收藏/分享 |
除非特别说明,本系统中所有内容都受版权保护,并保留所有权利。
修改评论