基于CEGAR的C程序空指针解引用检测
摘要 | 第5-6页 |
ABSTRACT | 第6页 |
第一章 绪论 | 第11-15页 |
1.1 研究的背景和意义 | 第11-12页 |
1.2 模型检测技术的发展与现状 | 第12-13页 |
1.3 研究内容和目标 | 第13-14页 |
1.4 论文结构 | 第14-15页 |
第二章 相关技术与工具 | 第15-27页 |
2.1 模型检测 | 第15-18页 |
2.1.1 模型检测的过程 | 第15页 |
2.1.2 Kripke模型 | 第15-16页 |
2.1.3 时序逻辑 | 第16-18页 |
2.2 模型检测算法 | 第18-22页 |
2.2.1 符号模型检测算法 | 第18页 |
2.2.2 限界模型检测算法 | 第18-19页 |
2.2.3 抽象模型检测算法 | 第19-20页 |
2.2.4 细化技术 | 第20-21页 |
2.2.5 状态空间爆炸问题 | 第21-22页 |
2.3 相关技术与工具 | 第22-26页 |
2.3.1 CIL工具 | 第22-23页 |
2.3.2 CPAChecker | 第23-26页 |
2.4 本章小结 | 第26-27页 |
第三章 基于CEGAR的C程序PPTL模型检测 | 第27-39页 |
3.1 命题与性质的生成 | 第28-29页 |
3.2 命题的转换 | 第29-30页 |
3.3 性质的转换 | 第30-31页 |
3.4 ARG的生成过程 | 第31-32页 |
3.5 后继状态求解 | 第32-34页 |
3.6 查找反例路径和细化 | 第34-38页 |
3.7 本章小结 | 第38-39页 |
第四章 空指针解引用检测 | 第39-61页 |
4.1 指针变量的提取 | 第39-41页 |
4.2 计算ARGState的命题 | 第41-53页 |
4.3 优化操作 | 第53-60页 |
4.3.1 处理一些函数和移位操作符 | 第55-56页 |
4.3.2 结构体变量的特殊处理 | 第56-60页 |
4.4 本章小结 | 第60-61页 |
第五章 实验结果分析 | 第61-65页 |
5.1 算法的实现效果 | 第61-62页 |
5.2 可视化工具 | 第62页 |
5.3 实例演示 | 第62-64页 |
5.4 本章小结 | 第64-65页 |
第六章 总结和展望 | 第65-67页 |
参考文献 | 第67-71页 |
致谢 | 第71-73页 |
作者简介 | 第73-74页 |