第一章 绪论 | 第9-19页 |
1.1 调试技术介绍 | 第9-16页 |
1.1.1 国内外调试器的相关产品、水平 | 第10-12页 |
1.1.2 开放源码的象征-GDB | 第12-14页 |
1.1.3 调试技术发展的趋势 | 第14-16页 |
1.2 本论文的研究背景 | 第16-17页 |
1.3 论文的研究内容 | 第17页 |
1.4 论文的章节安排 | 第17-19页 |
第二章 调试原理核心技术 | 第19-42页 |
2.1 调试器设计涉及到的核心技术 | 第19页 |
2.2 ELF文件格式及调试信息的表示 | 第19-22页 |
2.2.1 ELF文件格式介绍 | 第19页 |
2.2.2 ELF文件的总体结构 | 第19-20页 |
2.2.3 ELF文件各重要组成部分内容介绍 | 第20-22页 |
2.3 ELF文件重定位的实现 | 第22-24页 |
2.3.1 静态重定位的实现 | 第23-24页 |
2.3.2 动态重定位的实现 | 第24页 |
2.4 ELF 文件中调试信息的表示 | 第24-28页 |
2.4.1 调试信息的产生过程 | 第24页 |
2.4.2 stabs调试信息表示格式简介 | 第24-28页 |
2.5 调试信息的提取与加工 | 第28-38页 |
2.5.1 ELF目标文件中.stab节内容的组织特点 | 第28-30页 |
2.5.2 调试器设计中提取和加工目标文件中调试信息的数据结构 | 第30-38页 |
2.6 嵌入式软件开发环境中调试器常用功能的实现 | 第38-41页 |
2.6.1 symbol,load功能的实现 | 第38页 |
2.6.2 断点管理功能的实现 | 第38-39页 |
2.6.3 函数调用栈与变量查看功能 | 第39-40页 |
2.6.4 单步执行功能的实现 | 第40-41页 |
2.7 小结 | 第41-42页 |
第三章 跨平台调试代理框架 | 第42-51页 |
3.1 调试代理技术研究 | 第42-46页 |
3.1.1 调试技术发展过程中的四种主要调试方法 | 第42-46页 |
3.1.2 调试方法的比较 | 第46页 |
3.2 跨平台研究介绍 | 第46-48页 |
3.3 调试代理框架 | 第48-50页 |
3.4 小结 | 第50-51页 |
第四章 系统级调试设计与实现 | 第51-67页 |
4.1 系统级调试的概念,原理 | 第51页 |
4.2 Linux系统级调试的应用领域 | 第51-54页 |
4.2.1 调试Linux内核 | 第51-52页 |
4.2.2 调试可加载模块 | 第52-54页 |
4.3 基于Linux内核的几种系统级调试方法的分析 | 第54-59页 |
4.3.1 用打印消息调试 | 第54-55页 |
4.3.2 通过查询调试 | 第55-57页 |
4.3.3 通过监视调试 | 第57-58页 |
4.3.4 Oops 分析 | 第58-59页 |
4.3.5 使用调试器调试 | 第59页 |
4.4 系统级调试的实现 | 第59-66页 |
4.4.1 系统结构 | 第59-61页 |
4.4.2 模块功能介绍 | 第61-62页 |
4.4.3 各功能模块的实现 | 第62-66页 |
4.5 小结 | 第66-67页 |
第五章 任务级调试设计与实现 | 第67-100页 |
5.1 任务级调试概念,原理 | 第67-68页 |
5.2 基于Linux任务级调试方法的几种分析 | 第68-71页 |
5.2.1 ptrace系统调用调试 | 第68-70页 |
5.2.2 /proc文件系统调试 | 第70-71页 |
5.3 Linux任务级调试的关键技术 | 第71-84页 |
5.3.1 Linux多线程库 | 第71-79页 |
5.3.2 Linux 信号处理 | 第79-84页 |
5.4 Linux任务级调试的实现 | 第84-99页 |
5.4.1 系统级调试结构图 | 第84-86页 |
5.4.2 TGdb使用的数据结构分析 | 第86-88页 |
5.4.3 TGdb的实现 | 第88-99页 |
5.5 小结 | 第99-100页 |
第六章 总结与展望 | 第100-102页 |
参考文献 | 第102-104页 |
致谢 | 第104-105页 |
个人简历、在学期间的研究成果及发表的学术论文 | 第105页 |
一. 个人简历 | 第105页 |
二. 在学期间的研究成果 | 第105页 |
三. 发表的学术论文 | 第105页 |