| 摘要 | 第1-6页 |
| Abstract | 第6-9页 |
| 第1章 绪论 | 第9-21页 |
| ·研究背景 | 第9页 |
| ·内存错误与检测概述 | 第9-16页 |
| ·内存泄露 | 第10-11页 |
| ·访问未初始化的内存 | 第11-12页 |
| ·内存重复释放 | 第12-13页 |
| ·访问内存越界 | 第13-15页 |
| ·内存错误检测 | 第15-16页 |
| ·VALGRIND工具集与RATIONALPURIFYPLUS工具集的优势对比 | 第16-19页 |
| ·主要研究内容 | 第19-21页 |
| 第2章 VALGRIND组件和OSE实时操作系统 | 第21-34页 |
| ·VALGRIND组件 | 第21-30页 |
| ·一个简单的Memcheck工具的使用案例 | 第22-23页 |
| ·Valgrind工具的工作流程 | 第23-27页 |
| ·影子存储 | 第27-28页 |
| ·共享资源的保护 | 第28-29页 |
| ·系统调用的处理 | 第29页 |
| ·Valgrind工具的使用 | 第29-30页 |
| ·OSE实时操作系统 | 第30-33页 |
| ·OSE操作系统架构 | 第31页 |
| ·OSE进程 | 第31页 |
| ·消息 | 第31页 |
| ·域,块,内存和堆 | 第31-32页 |
| ·私有和公共堆缓冲 | 第32页 |
| ·OSE操作系统动态错误检测的局限 | 第32页 |
| ·OSE BIOS | 第32-33页 |
| ·OSE软内核 | 第33页 |
| ·本章小结 | 第33-34页 |
| 第3章 如何基于VALGRIND来检测OSE应用中的内存错误 | 第34-42页 |
| ·问题描述 | 第34页 |
| ·可行性方案分析 | 第34-41页 |
| ·基于Valgrind的OSE软内核及其应用程序的分析 | 第34-37页 |
| ·基于Valgrind的OSE及其应用程序的分析 | 第37-38页 |
| ·基于Valgrind的OSE单进程分析 | 第38-40页 |
| ·将Valgrind移植到OSE操作系统中 | 第40-41页 |
| ·本章小结 | 第41-42页 |
| 第4章 软件原型 | 第42-62页 |
| ·软件原型问题描述 | 第42页 |
| ·为OSE操作系统制定的VALGRIND | 第42-45页 |
| ·Valgrind框架中自带错误过滤的局限 | 第42-43页 |
| ·制定的Valgrind方案分析和选择 | 第43页 |
| ·制定的Valgrind的实现 | 第43-44页 |
| ·使用制定的Valgrind的注意点 | 第44-45页 |
| ·OSE-WRAPPER中间件 | 第45-52页 |
| ·两种OSE-WRAPPER实现方案系统概述 | 第45-46页 |
| ·与内存操作相关的OSE系统调用分类 | 第46-47页 |
| ·OSE-WRAPPER方案一实现原理 | 第47-48页 |
| ·OSE-WRAPPER方案二实现原理 | 第48-51页 |
| ·OSE-WRAPPER方案一和方案二的对比 | 第51-52页 |
| ·软件原型功能测试 | 第52-59页 |
| ·测试案例解析 | 第52-54页 |
| ·制定的Valgrind和OSE-WRAPPER方案一的测试结果 | 第54-56页 |
| ·制定的Valgrind和OSE-WRAPPER方案二的测试结果 | 第56-58页 |
| ·Rational Purify的测试结果 | 第58-59页 |
| ·功能测试总结 | 第59页 |
| ·软件原型的速度测试 | 第59-60页 |
| ·速度测试标定方案 | 第59-60页 |
| ·速度测试结果 | 第60页 |
| ·本章小结 | 第60-62页 |
| 第5章 总结与展望 | 第62-63页 |
| 参考文献 | 第63-66页 |
| 致谢 | 第66-67页 |
| 附录一 VALGRIND中被修改的文件 | 第67-68页 |
| 附录二 OSE中被拦截和插装的系统函数 | 第68-69页 |