摘要 | 第5-6页 |
abstract | 第6-7页 |
第一章 绪论 | 第10-17页 |
1.1 研究背景与意义 | 第10-11页 |
1.2 国内外研究现状 | 第11-16页 |
1.2.1 动态符号执行的研究现状 | 第11-14页 |
1.2.2 软件性能缺陷发现的研究现状 | 第14-16页 |
1.3 论文的研究内容和结构安排 | 第16-17页 |
第二章 动态符号执行技术理论及其在软件性能分析的应用 | 第17-28页 |
2.1 动态符号执行原理和过程 | 第17-20页 |
2.2 动态符号执行相关技术和工具 | 第20-26页 |
2.2.1 程序插桩 | 第20-24页 |
2.2.2 约束求解 | 第24-25页 |
2.2.3 路径探索 | 第25-26页 |
2.3 动态符号执行在软件性能分析的应用 | 第26-27页 |
2.4 本章小结 | 第27-28页 |
第三章 动态符号执行工具CET的设计和实现 | 第28-46页 |
3.1 CET的整体框架设计 | 第28-30页 |
3.2 CET程序插桩和约束求解 | 第30-33页 |
3.2.1 基于Valgrind中间指令的插桩 | 第30-31页 |
3.2.2 STP约束求解的输入格式 | 第31-33页 |
3.3 CET核心模块的设计 | 第33-45页 |
3.3.1 标记符号源 | 第33-35页 |
3.3.2 跟踪符号传播 | 第35-36页 |
3.3.3 路径条件搜集 | 第36-37页 |
3.3.4 路径条件求解及测试用例生成 | 第37-39页 |
3.3.5 路径探索 | 第39-45页 |
3.4 本章小结 | 第45-46页 |
第四章 软件性能缺陷自动化发现的设计和实现 | 第46-69页 |
4.1 CPU缓存和分枝预测 | 第46-48页 |
4.2 软件性能缺陷自动化检测 | 第48-55页 |
4.2.1 PerfDiscover的整体设计 | 第48-49页 |
4.2.2 性能损失的计算方法 | 第49-51页 |
4.2.3 性能缺陷发现的路径探索算法 | 第51-54页 |
4.2.4 输出测试报告 | 第54-55页 |
4.3 PerfDiscover的有效性验证实验 | 第55-66页 |
4.3.1 实验设计 | 第55-57页 |
4.3.2 实验结果及分析 | 第57-62页 |
4.3.3 性能优化案例分析 | 第62-66页 |
4.4 PerfDiscover与PROFs的对比实验 | 第66-68页 |
4.4.1 实验设计 | 第66页 |
4.4.2 实验结果与分析 | 第66-68页 |
4.5 本章小结 | 第68-69页 |
第五章 全文总结和未来工作展望 | 第69-71页 |
5.1 论文工作总结 | 第69-70页 |
5.2 未来工作展望 | 第70-71页 |
致谢 | 第71-72页 |
参考文献 | 第72-77页 |
攻硕期间取得的研究成果 | 第77-78页 |