基于软件模型检测的C程序内存泄漏修复
摘要 | 第5-6页 |
ABSTRACT | 第6页 |
缩略语对照表 | 第10-14页 |
第一章 绪论 | 第14-20页 |
1.1 研究的背景和意义 | 第14-15页 |
1.2 国内外研究现状与发展 | 第15-16页 |
1.2.1 内存泄漏的检测与修复 | 第15-16页 |
1.2.2 模型检测技术的发展与现状 | 第16页 |
1.3 研究的主要工作内容 | 第16-17页 |
1.4 论文结构及内容安排 | 第17-20页 |
第二章 相关理论基础 | 第20-32页 |
2.1 内存泄漏 | 第20-24页 |
2.1.1 内存泄漏的概念 | 第20-21页 |
2.1.2 内存泄漏的分类 | 第21-22页 |
2.1.3 C程序中常见的内存泄漏原因 | 第22-23页 |
2.1.4 C程序中内存泄漏的检测与修复 | 第23-24页 |
2.2 模型检测 | 第24-28页 |
2.2.1 时序逻辑 | 第24-26页 |
2.2.2 模型检测基本思想 | 第26页 |
2.2.3 抽象模型检测 | 第26-28页 |
2.3 CPAChecker | 第28-30页 |
2.3.1 CPAChecker的思想 | 第28页 |
2.3.2 CFA | 第28-30页 |
2.4 相关工具 | 第30-31页 |
2.5 本章小结 | 第31-32页 |
第三章 C程序中内存泄漏的检测及反例路径的生成 | 第32-44页 |
3.1 生成性质 | 第33-36页 |
3.1.1 性质的生成和表示 | 第33-35页 |
3.1.2 性质的转化 | 第35-36页 |
3.2 生成ARG | 第36-37页 |
3.3 生成反例路径 | 第37-41页 |
3.3.1 求解后继状态 | 第37-39页 |
3.3.2 反例路径的查找及细化 | 第39-41页 |
3.4 TPChecker检测C程序内存泄漏总结 | 第41-43页 |
3.4.1 TPChecker检测过程总结与示例 | 第41页 |
3.4.2 TPChecker产生的反例路径示例 | 第41-43页 |
3.5 本章小结 | 第43-44页 |
第四章 基于反例路径的内存泄漏修复 | 第44-58页 |
4.1 控制流边的层次结构 | 第45-46页 |
4.2 分配边,使用边,安全边及混合结点 | 第46-49页 |
4.2.1 分配边 | 第47-48页 |
4.2.2 使用边 | 第48页 |
4.2.3 安全边 | 第48-49页 |
4.2.4 混合结点 | 第49页 |
4.3 从反例路径提取信息并映射到CFA | 第49-52页 |
4.3.1 从反例路径中提取信息 | 第49-52页 |
4.3.2 将提取的信息映射到CFA上 | 第52页 |
4.4 定位添加释放信息的位置 | 第52-55页 |
4.5 安全的修复内存泄漏 | 第55页 |
4.6 本章小结 | 第55-58页 |
第五章 实验结果分析 | 第58-68页 |
5.1 算法的实现效果以及实验结果的对比 | 第58-62页 |
5.1.1 Leakfix和SPEC2000 | 第58页 |
5.1.2 实验结果以及比较 | 第58-61页 |
5.1.3 可修复的泄漏类型比较 | 第61-62页 |
5.2 可视化工具 | 第62-64页 |
5.3 实例演示 | 第64-67页 |
5.4 本章小结 | 第67-68页 |
第六章 总结与展望 | 第68-70页 |
参考文献 | 第70-74页 |
致谢 | 第74-76页 |
作者简介 | 第76-77页 |