C/C++程序中指针有效性的静态检测
| 摘要 | 第1-4页 |
| ABSTRACT | 第4-7页 |
| 第一章 绪论 | 第7-13页 |
| ·研究背景 | 第7页 |
| ·研究现状 | 第7-8页 |
| ·XDCHECK系统总体概述 | 第8-10页 |
| ·系统功能 | 第8-9页 |
| ·系统框架 | 第9-10页 |
| ·论文的主要工作及论文组织 | 第10-13页 |
| 第二章 指针非法使用的表现及检查方案 | 第13-31页 |
| ·指针非法使用的表现及产生原因分析 | 第13-15页 |
| ·指针无效引用 | 第13-14页 |
| ·释放不合法的地址 | 第14-15页 |
| ·指针有效性检查模块的整体结构 | 第15-16页 |
| ·变量及变量状态的记录方式 | 第16-18页 |
| ·变量信息的存储结构 | 第16-17页 |
| ·指针状态的分类 | 第17页 |
| ·指针状态的契约结构 | 第17-18页 |
| ·安全检查所需信息的提取 | 第18-26页 |
| ·抽象语法树简介 | 第19-20页 |
| ·信息提取过程与方法 | 第20-26页 |
| ·变量声明节点的安全分析算法 | 第20-24页 |
| ·赋值表达式节点的安全分析算法 | 第24-26页 |
| ·根据安全规则实现安全检查 | 第26-29页 |
| ·本章小结 | 第29-31页 |
| 第三章 指针有效性检查的关键技术 | 第31-49页 |
| ·指针指向的变量超出作用域 | 第31-32页 |
| ·程序分支引起指针状态的不确定性 | 第32-41页 |
| ·设计思想 | 第33页 |
| ·控制流语句的表示方法 | 第33-35页 |
| ·控制流节点 | 第33-34页 |
| ·控制流链表 | 第34-35页 |
| ·各种控制流语句的处理方式 | 第35-38页 |
| ·if语句和switch语句 | 第36页 |
| ·for、while和do_while语句 | 第36-37页 |
| ·break、continue和return语句 | 第37-38页 |
| ·控制流节点的合并规则 | 第38-40页 |
| ·指针状态的查找方法 | 第40-41页 |
| ·共享指针内容引起的依赖问题 | 第41-43页 |
| ·跨过程的指针检查 | 第43-47页 |
| ·自下而上的分析方法 | 第44页 |
| ·函数契约 | 第44-45页 |
| ·具体实现 | 第45-47页 |
| ·函数声明节点的安全分析算法 | 第45-46页 |
| ·函数返回节点的安全分析算法 | 第46页 |
| ·函数调用节点的安全分析算法 | 第46-47页 |
| ·结构体内指针和多重指针 | 第47-49页 |
| 第四章 实例分析 | 第49-51页 |
| 第五章 结束语 | 第51-53页 |
| 致谢 | 第53-55页 |
| 参考文献 | 第55-57页 |
| 作者在读期间的研究成果 | 第57页 |