基于LLVM的静态程序有界模型检测
摘要 | 第3-4页 |
abstract | 第4-5页 |
第1章 引言 | 第8-12页 |
1.1 研究背景和意义 | 第8页 |
1.2 研究现状 | 第8-10页 |
1.3 主要工作 | 第10页 |
1.4 论文结构 | 第10-11页 |
1.5 本章小结 | 第11-12页 |
第2章 相关技术 | 第12-26页 |
2.1 形式验证 | 第12页 |
2.2 有界模型检测 | 第12-13页 |
2.3 LLVM | 第13-22页 |
2.3.1 中间表示 | 第15-16页 |
2.3.2 指令集 | 第16-20页 |
2.3.3 静态单赋值形式 | 第20-22页 |
2.4 控制流分析 | 第22-25页 |
2.4.1 控制流图 | 第22-23页 |
2.4.2 支配关系 | 第23-24页 |
2.4.3 后支配关系 | 第24页 |
2.4.4 控制依赖关系 | 第24-25页 |
2.5 SMT求解器 | 第25页 |
2.6 本章小结 | 第25-26页 |
第3章 基于状态迁移的程序验证方法 | 第26-38页 |
3.1 生成中间表示 | 第26页 |
3.2 有限次循环展开 | 第26-28页 |
3.2.1 循环展开预处理 | 第27页 |
3.2.2 循环展开 | 第27-28页 |
3.3 迁移系统构造 | 第28-33页 |
3.3.1 基本块 | 第28-29页 |
3.3.2 基本块迁移关系构造 | 第29-30页 |
3.3.3 指令构造 | 第30-33页 |
3.4 测试用例生成公式 | 第33-35页 |
3.5 实验分析 | 第35-37页 |
3.6 本章小结 | 第37-38页 |
第4章 基于状态迁移的程序验证方法改进 | 第38-48页 |
4.1 迁移系统构造 | 第38-42页 |
4.1.1 基本块表示 | 第38-40页 |
4.1.2 指令分析 | 第40-42页 |
4.2 测试用例生成公式 | 第42-44页 |
4.3 实验分析 | 第44-46页 |
4.4 本章小结 | 第46-48页 |
第5章 基于控制依赖关系的程序验证方法 | 第48-58页 |
5.1 拓扑排序 | 第48页 |
5.2 控制依赖关系 | 第48-50页 |
5.3 迁移系统构造 | 第50-53页 |
5.3.1 控制流表示 | 第50页 |
5.3.2 指令分析 | 第50-53页 |
5.4 测试用例生成公式 | 第53-54页 |
5.5 实验分析 | 第54-57页 |
5.6 本章小结 | 第57-58页 |
第6章 总结与展望 | 第58-60页 |
6.1 本文主要成果 | 第58页 |
6.2 本文的创新点 | 第58页 |
6.3 本文的不足 | 第58-59页 |
6.4 将来的工作 | 第59-60页 |
参考文献 | 第60-64页 |
致谢 | 第64页 |