第一章 前言 | 第1-12页 |
·课题开发背景 | 第10页 |
·国内外发展现状 | 第10-11页 |
·应用前景 | 第11页 |
·问题的提出 | 第11页 |
·本文的主要工作 | 第11-12页 |
第二章 获取函数的返回地址 | 第12-18页 |
·ARM处理器介绍 | 第12页 |
·ARM指令集及汇编介绍 | 第12页 |
·ARM寄存器介绍 | 第12-13页 |
·ARM的堆栈寻址 | 第13-14页 |
·ARM过程调用标准 | 第14页 |
·APCS的寄存器命名 | 第14-15页 |
·ARM的堆栈回溯结构 | 第15-16页 |
·函数的返回地址 | 第16-17页 |
·从返回的地址对应到代码行 | 第17-18页 |
第三章 linux系统的内存管理 | 第18-33页 |
·内存管理器分类 | 第18-19页 |
·物理内存管理器 | 第19-26页 |
·数据结构 | 第20-24页 |
·页分配 | 第24-25页 |
·页释放 | 第25-26页 |
·内核内存管理器 | 第26页 |
·虚拟内存管理器 | 第26-28页 |
·进程空间的管理 | 第26-28页 |
·页表机制 | 第27页 |
·进程空间的管理 | 第27-28页 |
·用户空间内存管理器 | 第28-33页 |
·glibc对内存的管理 | 第28-29页 |
·GNU C库动态内存分配的实现 | 第29-33页 |
第四章 linux系统中内存泄漏检测分析的工具 | 第33-35页 |
·memwatch实现机制分析 | 第33页 |
·ccmalloc实现机制分析 | 第33-34页 |
·dmalloc实现机制分析 | 第34-35页 |
第五章 宏观和微观检测的方法实现 | 第35-48页 |
·linux的运行库 | 第35页 |
·linux进程的映射 | 第35-36页 |
·微观检测 | 第36-44页 |
·微观检测的初始化流程 | 第38页 |
·微观检测中重新定义的malloc函数 | 第38-40页 |
·微观检测中重新定义的free函数 | 第40-41页 |
·微观检测中重新定义的realloc函数 | 第41-43页 |
·微观检测中重新定义的calloc函数 | 第43-44页 |
·进程退出时的处理 | 第44页 |
·哈希表的说明 | 第44-46页 |
·宏观检测 | 第46-48页 |
第六章 设备驱动模块 | 第48-55页 |
·设备驱动程序概念 | 第49-53页 |
·I/O空间 | 第51-53页 |
·轮询和中断 | 第53页 |
·设备驱动程序的分类 | 第53页 |
·建立一个虚拟的字符设备 | 第53-55页 |
第七章 结束语 | 第55-57页 |
·总结 | 第55页 |
·结论 | 第55-57页 |
发表论文及参加科研情况 | 第57-58页 |
参考文献 | 第58-60页 |
致谢 | 第60-61页 |
附录A 编译linux环境下的交叉编译工具 | 第61-65页 |
A.1 linux操作系统编译 | 第61-62页 |
A.2 binutils编译 | 第62页 |
A.3 第一次gcc3.3.1编译 | 第62-63页 |
A.4 编译libc | 第63页 |
A.5 第二次编译gcc3.3.1 | 第63-64页 |
A.6 附件:文件中涉及到的安装包下载地址 | 第64-65页 |
附录B 编写makefile | 第65-71页 |
B.1 基本makefile结构 | 第65-66页 |
B.2 Makefile变量 | 第66-67页 |
B.3 隐含规则(Implicit Rules) | 第67-68页 |
B.4 假象目的(Phony Targets) | 第68页 |
B.5 函数(Functions) | 第68-69页 |
B.6 一个比较有效的makefile | 第69-71页 |
附录C memory leak test case | 第71-82页 |
C.1 测试源文件 | 第71-77页 |
C.2 测试结果 | 第77-82页 |