摘要 | 第4-5页 |
ABSTRACT | 第5页 |
第一章 绪论 | 第8-11页 |
1.1 课题的研究背景及意义 | 第8-9页 |
1.2 国内外的研究现状 | 第9页 |
1.3 本文研究工作 | 第9-10页 |
1.4 本文章节内容安排 | 第10-11页 |
第二章 相关工作 | 第11-19页 |
2.1 动态二进制翻译技术 | 第11-12页 |
2.2 嵌入式开发相关概念 | 第12-13页 |
2.2.1 宿主机 | 第12-13页 |
2.2.2 目标机 | 第13页 |
2.2.3 交叉开发环境 | 第13页 |
2.3 嵌入式系统开发过程 | 第13-15页 |
2.4 硬件调试技术概述 | 第15-17页 |
2.4.1 Crash and Burn | 第15-16页 |
2.4.2 在线仿真器 | 第16-17页 |
2.5 软件调试技术概述 | 第17-19页 |
2.5.1 GDB-Stub 介绍 | 第18页 |
2.5.2 GDBServer 方案介绍 | 第18-19页 |
第三章 面向 QEMU 的调试器的设计 | 第19-32页 |
3.0 QEMU 调试系统结构 | 第19-20页 |
3.1 RSP 通信协议 | 第20-21页 |
3.1.1 协议包格式和命令类型 | 第20-21页 |
3.1.2 效验算法 | 第21页 |
3.2 基于 QEMU 的 GDBServer 的设计与实现 | 第21-30页 |
3.2.1 虚拟机端机器状态的切换 | 第22-23页 |
3.2.2 gdb_srv_start_and_wait()函数的实现 | 第23页 |
3.2.3 插入断点函数和移除断点 | 第23-24页 |
3.2.4 读寄存器操作与写寄存器操作 | 第24-25页 |
3.2.5 读取 GDB 数据包操作 | 第25-27页 |
3.2.6 调试过程中对命令的解析和执行 | 第27-30页 |
3.2.7 gdb_loop()函数的实现 | 第30页 |
3.2.8 断点的捕获 | 第30页 |
3.4 实验结果 | 第30-32页 |
第四章 面向 QEMU 虚拟机的优化 | 第32-44页 |
4.1 QEMU 的优化 | 第32-36页 |
4.1.1 优化的概述 | 第32-33页 |
4.1.2 优化的方法 | 第33-36页 |
4.2 Cache 模块的添加 | 第36-38页 |
4.3 指令 Cache 的设计 | 第38-39页 |
4.3.1 指令 Cache 的写操作 | 第38-39页 |
4.3.2 指令 Cache 的读操作 | 第39页 |
4.4 指令 Cache 的设计 | 第39-42页 |
4.4.1 数据 Cache 的写操作 | 第40-41页 |
4.4.2 数据 Cache 的读操作 | 第41-42页 |
4.5 Cache 仿真平台的构建 | 第42-43页 |
4.6 实验结果 | 第43-44页 |
第五章 总结与展望 | 第44-46页 |
5.1 总结 | 第44页 |
5.2 展望 | 第44-46页 |
参考文献 | 第46-48页 |
发表论文和参加科研情况说明 | 第48-49页 |
致谢 | 第49页 |