摘要 | 第5-6页 |
Abstract | 第6页 |
第1章 引言 | 第9-13页 |
1.1. 项目背景与面临的挑战 | 第9-11页 |
1.1.1. 要解决的问题 | 第9-10页 |
1.1.2. 研究现状及课题背景 | 第10-11页 |
1.2. 主要工作及贡献 | 第11页 |
1.3. 论文结构安排 | 第11-13页 |
第2章 相关工作综述 | 第13-22页 |
2.1. 常用版本控制工具 | 第13-14页 |
2.2. 版本控制工具的比较 | 第14-15页 |
2.3. 函数调用图在线展示工具 | 第15-16页 |
2.4. 差异展现工具 | 第16-18页 |
2.5. Linux环境编译器 | 第18-20页 |
2.6. 小结 | 第20-22页 |
第3章 以函数为粒度的差异比较工具Diffe的设计与实现 | 第22-43页 |
3.1. 函数差异比较工具概述 | 第22-26页 |
3.2. 工具框架结构 | 第26页 |
3.3. 源代码差异分析 | 第26-30页 |
3.3.1. 函数差异分析 | 第26-29页 |
3.3.2. 文件/目录差异分析 | 第29-30页 |
3.4. 生成函数调用关系图 | 第30-31页 |
3.5. 生成带有差异信息的graph图 | 第31-34页 |
3.6. 函数调用差异SVG图展示 | 第34-37页 |
3.6.1. 加入菜单项 | 第35-36页 |
3.6.2. 给SVG图添加浮动菜单内容 | 第36-37页 |
3.6.3. 给点击菜单链接 | 第37页 |
3.7. 函数代码/目录差异展示 | 第37-40页 |
3.7.1. 函数代码差异 | 第38-39页 |
3.7.2. 目录/模块具体差异 | 第39-40页 |
3.8. 与内核分析平台的整合 | 第40-41页 |
3.8.1. diffe脚本 | 第40-41页 |
3.8.2. diffe-perl脚本 | 第41页 |
3.9. 小结 | 第41-43页 |
第4章 结合语法差异分析的函数代码比较的设计 | 第43-56页 |
4.1. 语法差异分析研究的原因 | 第43-44页 |
4.2. GCC原始的AST | 第44-46页 |
4.3. GCC语法树的控制流图 | 第46-49页 |
4.4. 加入语法差异的函数代码差异功能的框架结构 | 第49页 |
4.5. 使用控制流图实现语法差异的设计 | 第49-55页 |
4.5.1. 使用gcc编译源代码文件,并进行预处理 | 第50-52页 |
4.5.2. 建立语法树行号与源码的行号之间一个多对一的关系 | 第52-53页 |
4.5.3. 脚本设计 | 第53-55页 |
4.5.4. 差异显示 | 第55页 |
4.6. 小结 | 第55-56页 |
第5章 与内核分析平台的集成和部署 | 第56-66页 |
5.1. 实验环境及准备 | 第56页 |
5.2. 实验环境部署 | 第56页 |
5.3. 部署Diffe功能 | 第56-59页 |
5.4. 画差异分布图 | 第59-62页 |
5.5. 画函数代码差异/目录差异展示 | 第62-63页 |
5.6. 具体实例细节展示 | 第63-65页 |
5.7. 运行时间分析 | 第65页 |
5.8. 小结 | 第65-66页 |
第6章 结论以及进一步工作 | 第66-68页 |
6.1. 结论 | 第66-67页 |
6.2. 进一步工作 | 第67-68页 |
参考文献 | 第68-70页 |
致谢 | 第70页 |