学位论文 > 优秀研究生学位论文题录展示

考虑指针别名的静态分析技术研究

作 者: 唐鹏飞
导 师: 罗克露
学 校: 电子科技大学
专 业: 计算机应用技术
关键词: 指针别名分析 调用图 联系图 控制流图 数据流分析
分类号: TP311.11
类 型: 硕士论文
年 份: 2010年
下 载: 65次
引 用: 0次
阅 读: 论文下载
 

内容摘要


虽然当今编程语言层出不穷,但C语言作为主流语言仍然被广泛地应用到各种系统的开发中。因为当今软件开发的成本越来越高,如果稍有不慎,就可能造成很严重的软件故障,从而造成相当严重的经济损失。应这方面的需求,软件测试工具应运而生。作为软件测试工具,静态代码分析工具不用执行源代码程序就可以检测软件中的错误或者是缺陷,再加上它对成本的要求比较低,所以被越来越多的公司所采用。尽管当前静态代码分析工具种类繁多,但是都存在着指针别名分析不够准确的问题,有的工具忽略指针别名分析,有的工具则采用其他形式来代替指针别名分析。由于指针别名分析的好坏将直接影响到静态分析工具代码分析的准确率,所以针对当前代码分析工具存在的这些问题,设计和实现了指针别名分析算法,并将此算法应用到自行开发的工具CChecker中。指针别名分析分为过程内指针别名分析和过程间指针别名分析。过程内采用对控制流图进行数据流分析的方法,通过遍历程序的控制流图,记录下函数、参数、变量的使用情况,并且根据C语言的独特性设计了C语言别名的规则集和关于C语言的过程内指针别名分析方法,并通过实例来验证了方法的正确性。因为C语言存在着参数传递和全局变量,使得过程内分析还不够完善,需要引入过程间的指针别名分析,通过拓展调用图生成程序的联系图,增强联系图的属性,实现了C语言过程间的指针别名分析算法。本论文在参考CTree的基础上,使用面向对象的方法自行设计和实现了考虑指针别名的静态代码分析工具CChecker,设计了静态代码分析系统的架构图和系统的各个功能模块,给出了代码分析的流程图,介绍了源代码静态分析工具中主要的类和接口。考虑到缺陷或错误的级别、用户关注点和文件路径等等因素的影响,有针对性地设计了静态分析工具的命令。通过和静态代码分析工具CppCheck做比较,CppCheck没有考虑指针别名分析,可以看出本工具在代码分析的准确率上有了一定的提高,并且从实际应用中证实了该工具的实用性。

全文目录


相似论文

  1. 基于多样化对象所有权的软件可信性质研究,TP311.52
  2. 基于反编译的恶意代码检测关键技术研究与实现,TP309
  3. ARM反编译中的类型分析技术研究,TP368.1
  4. 代码逆向分析中的语句恢复与算法识别技术研究,TP311.52
  5. C/C++程序安全检查工具中数据流分析器的设计与实现,TP311.11
  6. 全局数组数据流分析技术的研究与实现,TP338.6
  7. JSP跨站脚本漏洞静态检测技术的研究与实现,TP311.10
  8. Java数组越界检测系统的设计与实现,TP311.5
  9. 基于面向对象软件多态特性的MM路径自动生成,TP311.52
  10. 基于GCC抽象语法树文本的C源程序语义分析方法研究,TP311.11
  11. TD类漏洞及死锁检测系统的设计与实现,TP393.08
  12. 基于CFG多态蠕虫特征自动提取模型研究,TP393.08
  13. 自动化单元测试录制框架的研究与实现,TP311.52
  14. 基于嵌入式软件的覆盖测试技术研究,TP311.52
  15. PHP程序静态分析系统的设计与实现,TP311.52
  16. 基于语法树结构优化和控制流图比对的软件同源性检测技术研究,TP311.52
  17. 高等职业卫生学校学生宿舍管理系统的设计,TP311.52
  18. 基于函数调用图的面向对象软件的修改影响分析研究,TP311.52
  19. 基于数据流分析的测试用例自动生成技术,TP311.52
  20. 面向方面软件的测试用例排序技术,TP311.52

中图分类: > 工业技术 > 自动化技术、计算机技术 > 计算技术、计算机技术 > 计算机软件 > 程序设计、软件工程 > 程序设计 > 程序设计方法
© 2012 www.xueweilunwen.com