| 中文摘要 | 第3-4页 |
| 英文摘要 | 第4页 |
| 1 绪论 | 第7-12页 |
| 1.1 论文背景、研究内容及意义 | 第7-9页 |
| 1.2 国内外研究现状 | 第9-10页 |
| 1.3 本文主要工作 | 第10-11页 |
| 1.4 论文结构安排 | 第11-12页 |
| 2 符号执行基础理论 | 第12-21页 |
| 2.1 符号执行概述 | 第12页 |
| 2.2 符号执行基本原理 | 第12-16页 |
| 2.2.1 控制流图 | 第12-13页 |
| 2.2.2 符号执行基本原理 | 第13-16页 |
| 2.3 符号执行存在问题 | 第16-18页 |
| 2.3.1 路径爆炸问题 | 第16-17页 |
| 2.3.2 程序设计语言的复杂性 | 第17-18页 |
| 2.3.3 应用领域的复杂性 | 第18页 |
| 2.4 约束求解过程 | 第18-20页 |
| 2.4.1 约束求解概述 | 第18-19页 |
| 2.4.2 现阶段约束求解过程优化方法及存在的问题 | 第19-20页 |
| 2.5 小结 | 第20-21页 |
| 3 基于线性规划的约束求解过程优化 | 第21-29页 |
| 3.1 线性规划基础理论 | 第21-22页 |
| 3.1.1 线性规划概论 | 第21页 |
| 3.1.2 线性规划原理 | 第21-22页 |
| 3.2 线性规划优化约束求解 | 第22-28页 |
| 3.2.1 约束求解问题转化 | 第22页 |
| 3.2.2 线性规划求解过程 | 第22-27页 |
| 3.2.3 中间结果保存 | 第27页 |
| 3.2.4 选择性优化 | 第27-28页 |
| 3.3 小结 | 第28-29页 |
| 4 针对KLEE的约束求解优化设计与实现 | 第29-42页 |
| 4.1 KLEE概述 | 第29-31页 |
| 4.1.1 解释模块 | 第29-30页 |
| 4.1.2 符号化模块 | 第30页 |
| 4.1.3 约束求解模块 | 第30页 |
| 4.1.4 路径选择模块 | 第30-31页 |
| 4.2 KLEE约束求解模块 | 第31-34页 |
| 4.2.1 约束表达式简化 | 第32页 |
| 4.2.2 约束集合简化 | 第32页 |
| 4.2.3 反例缓存 | 第32-33页 |
| 4.2.4 STP求解器概述 | 第33-34页 |
| 4.3 KLEE约束求解模块优化设计与实现 | 第34-41页 |
| 4.3.1 KLEE工作流程分析 | 第34-35页 |
| 4.3.2 线性规划模块设计与实现 | 第35-41页 |
| 4.4 小结 | 第41-42页 |
| 5 实验与结论分析 | 第42-50页 |
| 5.1 实验环境 | 第42页 |
| 5.2 实验过程 | 第42-48页 |
| 5.2.1 KLEE约束集合优化实验 | 第43-44页 |
| 5.2.2 KLEE性能优化实验 | 第44-48页 |
| 5.3 实验结果分析 | 第48-49页 |
| 5.4 小结 | 第49-50页 |
| 6 总结与展望 | 第50-52页 |
| 6.1 工作总结 | 第50页 |
| 6.2 下一步工作 | 第50-52页 |
| 致谢 | 第52-53页 |
| 参考文献 | 第53-56页 |
| 附录 | 第56页 |
| A. 作者在攻读硕士学位期间发表的论文题目 | 第56页 |