基于LLVM-Clang的软件静态检测工具研究与实现
摘要 | 第3-5页 |
ABSTRACT | 第5-6页 |
1 绪论 | 第9-17页 |
1.1 研究背景及意义 | 第9-10页 |
1.2 国内外研究现状 | 第10-13页 |
1.2.1 静态检测技术研究现状 | 第10-12页 |
1.2.2 静态检测工具的研究现状 | 第12-13页 |
1.3 论文主要研究内容与章节安排 | 第13-14页 |
1.4 本章小结 | 第14-17页 |
2 静态检测工具功能需求分析与技术路线 | 第17-29页 |
2.1 缺陷分析 | 第17-20页 |
2.1.1 代码性能低下 | 第17-18页 |
2.1.2 C++新旧语法的变换 | 第18-19页 |
2.1.3 常见代码缺陷 | 第19-20页 |
2.2 静态检测工具的评价指标 | 第20-21页 |
2.3 静态检测工具的功能需求 | 第21-24页 |
2.4 静态检测工具实现的技术路线 | 第24-27页 |
2.4.1 前端编译技术 | 第24-25页 |
2.4.2 抽象语法树(AST) | 第25-26页 |
2.4.3 控制流图(CFG) | 第26-27页 |
2.5 本章小结 | 第27-29页 |
3 静态检测工具核心技术及设计与实现 | 第29-47页 |
3.1 静态检测工具核心技术 | 第29-39页 |
3.1.1 静态检测框架 | 第29-30页 |
3.1.2 编译前端 | 第30-32页 |
3.1.3 静态分析 | 第32-36页 |
3.1.4 静态分析引擎算法 | 第36-39页 |
3.2 静态分析工具检测流程设计 | 第39-40页 |
3.3 数据库设计 | 第40-44页 |
3.4 静态检测工具可视化 | 第44-46页 |
3.5 本章小结 | 第46-47页 |
4 检测规则的构建与实现 | 第47-59页 |
4.1 基于AST数值转换检测规则与实现 | 第49-52页 |
4.2 | 第52-53页 |
4.3 基于数据流的有符号整型溢出检测规则与实现 | 第53-58页 |
4.4 本章小结 | 第58-59页 |
5 检测结果与分析 | 第59-65页 |
5.1 实验环境 | 第59页 |
5.2 测试结果及分析 | 第59-61页 |
5.3 与开源软件CppCheck比较 | 第61-63页 |
5.4 本章小结 | 第63-65页 |
6 总结与展望 | 第65-67页 |
6.1 总结 | 第65页 |
6.2 展望 | 第65-67页 |
致谢 | 第67-69页 |
参考文献 | 第69-70页 |