摘要 | 第1-4页 |
Abstract | 第4-5页 |
目录 | 第5-7页 |
第1章 绪论 | 第7-13页 |
·研究背景 | 第7-9页 |
·C/C++语言及其程序安全 | 第7-8页 |
·静态程序安全检查的现状 | 第8-9页 |
·XDCHECK安全检查工具 | 第9-11页 |
·论文的工作及论文的组织 | 第11-13页 |
第2章 GCC中间表示与 XDCHECK符号表 | 第13-19页 |
·GCC中间表示文件分类 | 第13-14页 |
·GCC中间表示格式分析 | 第14-16页 |
·GCC中间表示对XDCHECK设计的影响 | 第16-19页 |
第3章 XDCHECK符号表子系统的设计与和实现 | 第19-37页 |
·XDCHECK符号表子系统结构的组织 | 第19页 |
·XDCHECK类型定义信息的构造 | 第19-29页 |
·XDCHECK类型信息记录结构的数据结构 | 第19-21页 |
·内建类型信息记录的构造 | 第21-22页 |
·枚举类型信息的构造 | 第22-23页 |
·结构体类型信息的构造 | 第23-24页 |
·联合体类型信息的构造 | 第24-25页 |
·别名和常量类型的信息的构造 | 第25-26页 |
·指针、引用和数组类型信息的构造 | 第26-27页 |
·函数类型信息的构造 | 第27-28页 |
·GenericTypeInfo结构的类型等价判断 | 第28-29页 |
·函数定义信息的构造 | 第29-32页 |
·XDCHECK函数信息记录数据结构和相关操作 | 第29-31页 |
·函数定义名称的构造 | 第31-32页 |
·变量定义信息的构造 | 第32-37页 |
·变量定义信息的数据结构和相关操作 | 第32-34页 |
·变量信息记录的管理 | 第34-37页 |
第4章 XDCHECK符号表的关键技术 | 第37-49页 |
·声明和定义信息的判定与合并 | 第37-41页 |
·函数声明和定义信息的判定与合并 | 第37-39页 |
·全局变量声明和定义信息的判定与合并 | 第39-40页 |
·类型声明与定义信息的判定与合并 | 第40-41页 |
·匿名类型的定义和等价判定 | 第41-43页 |
·结构体虚函数表信息的获取 | 第43-49页 |
·GCC中间表示中虚函数表的内部表示 | 第44-45页 |
·虚函数表信息在GenericTypeInfo中的存储 | 第45页 |
·派生类虚函数表表项与基类信息对应关系的计算 | 第45-49页 |
第5章 当前存在的问题及改进建议 | 第49-53页 |
·改进内建类型信息的跨平台性 | 第49-50页 |
·不相关的重名类型信息共存 | 第50页 |
·正确利用虚函数表信息 | 第50-51页 |
·补充复杂变量的定义信息 | 第51页 |
·减少全局符号表信息的空间开销 | 第51-53页 |
第6章 结束语 | 第53-55页 |
致谢 | 第55-57页 |
参考文献 | 第57-59页 |
在校期间研究成果 | 第59-61页 |
附录A 多文件情况下同名类型造成的程序安全隐患示例 | 第61-62页 |