摘要 | 第6-7页 |
Abstract | 第7页 |
图目 | 第8-9页 |
表目 | 第9-10页 |
公式目 | 第10-11页 |
第1章 .绪论 | 第11-15页 |
1.1 研究背景和现状 | 第11-12页 |
1.2 本文工作与贡献 | 第12-13页 |
1.3 本文组织结构 | 第13-15页 |
第2章 .相关工作与背景 | 第15-22页 |
2.1 多线程编程和程序并发错误 | 第15-17页 |
2.2 传统的并发错误检测方法 | 第17页 |
2.3 不变式检测工具介绍 | 第17-20页 |
2.3.1 不变式检测工具的工作原理 | 第18-19页 |
2.3.2 不变式检测工具的优势 | 第19-20页 |
2.4 现有的不变式检测方法及其问题 | 第20-21页 |
2.5 小结 | 第21-22页 |
第3章 .Java程序不变式检测的问题 | 第22-29页 |
3.1 问题1:多变量引发的并发错误 | 第22-24页 |
3.1.1 案例分析 | 第23-24页 |
3.2 问题2:上下文相关的并发错误 | 第24-28页 |
3.2.1 案例分析 | 第25-28页 |
3.3 小结 | 第28-29页 |
第4章 .Jacob总体设计 | 第29-32页 |
4.1 基本思路 | 第29-30页 |
4.1.1 解决方案1:基于对象粒度的不变式收集 | 第29页 |
4.1.2 解决方案2:上下文敏感信息记录 | 第29-30页 |
4.2 架构概览 | 第30-31页 |
4.3 小结 | 第31-32页 |
第5章 .基于对象粒度不变式收集的设计 | 第32-44页 |
5.1 使用对象粒度的优势 | 第32-33页 |
5.2 对象粒度不变式规则的设计 | 第33-36页 |
5.2.1 本地/远程读不变式(OBJ-L/R Invariant) | 第34-35页 |
5.2.2 跟随读不变式(OBJ-Follower Invariant) | 第35页 |
5.2.3 写集合不变式(OBJ-DSet Invariant) | 第35-36页 |
5.3 对象粒度不变式的提取 | 第36-39页 |
5.3.1 本地/远程读不变式 | 第37-38页 |
5.3.2 跟随读不变式 | 第38页 |
5.3.3 写集合不变式 | 第38-39页 |
5.4 对象粒度不变式的检测 | 第39-41页 |
5.4.1 本地/远程读不变式 | 第39-40页 |
5.4.2 跟随读不变式 | 第40页 |
5.4.3 写集合不变式 | 第40-41页 |
5.5 潜在错误的排序、删减方法的设计 | 第41-42页 |
5.6 案例分析 | 第42-43页 |
5.7 小结 | 第43-44页 |
第6章 .上下文敏感不变式检测的设计 | 第44-52页 |
6.1 上下文信息的引入 | 第44-46页 |
6.2 两种上下文敏感模法设计 | 第46-50页 |
6.2.1 PCC模式(Probabilistic Calling Context) | 第46-48页 |
6.2.2 PaCC模式(Partial Calling Context) | 第48-50页 |
6.3 对引入上下文信息的讨论 | 第50-51页 |
6.3.1 优势 | 第50-51页 |
6.3.2 劣势 | 第51页 |
6.4 小结 | 第51-52页 |
第7章 .预处理模块设计 | 第52-58页 |
7.1 预处理的目的和意义 | 第52-53页 |
7.2 静态分析设计方案 | 第53-57页 |
7.2.1 局部对象的检测 | 第53-56页 |
7.2.2 单赋值对象的检测 | 第56页 |
7.2.3 两类识别对象的标识 | 第56-57页 |
7.3 小结 | 第57-58页 |
第8章 . Jacob的实现与优化 | 第58-65页 |
8.1 对象头部数据结构的扩展 | 第58-60页 |
8.2 不变式提取与检测的插桩 | 第60-61页 |
8.3 上下文信息的计算和传递 | 第61-63页 |
8.4 相关优化 | 第63-64页 |
8.4.1 识别局部和单赋值对象 | 第64页 |
8.4.2 消除虚拟机进程带来的影响 | 第64页 |
8.5 小结 | 第64-65页 |
第9章 .实验与分析 | 第65-74页 |
9.1 实验环境 | 第65-66页 |
9.1.1 实验平台介绍 | 第65页 |
9.1.2 测试程序介绍 | 第65-66页 |
9.2 功能性测试 | 第66-68页 |
9.2.1 错误检测能力评估 | 第67页 |
9.2.2 假阳性评估 | 第67-68页 |
9.3 训练敏感度测试 | 第68-69页 |
9.4 性能开销的评测 | 第69-71页 |
9.5 储存开销的评测 | 第71-72页 |
9.6 上下文窗口大小的评测 | 第72-73页 |
9.7 小结 | 第73-74页 |
第10章 .总结及未来工作展望 | 第74-76页 |
10.1 总结与讨论 | 第74-75页 |
10.2 未来工作展望 | 第75-76页 |
参考文献 | 第76-79页 |
致谢 | 第79-80页 |