面向错误检测的C++程序静态分析技术
结题报告
批准号:
61003026
项目类别:
青年科学基金项目
资助金额:
20.0 万元
负责人:
许中兴
学科分类:
F0203.软件理论、软件工程与服务
结题年份:
2013
批准年份:
2010
项目状态:
已结题
项目参与者:
颜深根、陈柏强
国基评审专家1V1指导 中标率高出同行96.8%
结合最新热点,提供专业选题建议
深度指导申报书撰写,确保创新可行
指导项目中标800+,快速提高中标率
客服二维码
微信扫码咨询
中文摘要
本项目研究针对C++程序的静态分析查错技术,静态分析是提高软件正确性和安全性的重要技术,其中符号执行是最为精确的一种静态分析技术。C++语言是工业界广泛使用的大型系统软件编程语言,既有与C语言同样的低级内存操作语义,又有面向对象的语言特征,是一种极为强大和复杂的语言。本项目力图将符号执行分析技术扩展到C++程序上,使其能够精确模拟C++语言的语义,建立新的内存模型和对象模型,支持C++中的继承,虚函数,临时对象,类型转换,构造析构函数,new/delete操作符,模板,函数重载等主要语言特征。在技术研究的基础上,开发一个产品级质量的C++静态分析工具,使其能够分析中等规模的真实的C++项目。研究将在一个已有的C语言静态分析工具和一个成熟的C++编译器前端基础上进行。
英文摘要
在本项目中,我们研制了针对C和C++语言的静态分析工具Canalyze. Canalyze的目标是自动检测C和C++代码中的缺陷。Canalyze通过对代码中的每一条路径进行符号模拟执行来分析代码。这样可以对代码中可能出现的各种状态进行系统化的探索。通过这样的方式发现了很多代码缺陷,例如在GDB, Coreutils, sed等广泛使用的开源程序中。Canalyze中设计并实现了一个强大的内存建模方法,使得工具能够对指针,数组元素,结构体域等语言特性进行精确的分析和推理。
专著列表
科研奖励列表
会议论文列表
专利列表
国内基金
海外基金