嵌入式软件的C语言代码静态检查技术研究
摘要 | 第1-4页 |
Abstract | 第4-10页 |
第1章 绪论 | 第10-14页 |
·课题的背景和意义 | 第10-12页 |
·嵌入式系统的广泛应用 | 第10-11页 |
·嵌入式开发的软件环境 | 第11页 |
·嵌入式C代码静态验证的意义 | 第11-12页 |
·课题的研究目标 | 第12页 |
·拟解决的关键问题 | 第12页 |
·论文组织 | 第12-14页 |
第2章 C代码静态检查研究综述 | 第14-22页 |
·嵌入式 C代码主要的安全隐患 | 第14-16页 |
·内存访问错误 | 第14页 |
·缓冲区溢出错误 | 第14-15页 |
·指针引用错误 | 第15页 |
·异常控制 | 第15页 |
·堆栈溢出 | 第15-16页 |
·静态检测和动态检测的对比 | 第16页 |
·静态分析的主要困难 | 第16-17页 |
·国内外相关研究 | 第17-18页 |
·常用工具分析 | 第18-21页 |
·Pc-lint | 第18页 |
·Logiscope | 第18-19页 |
·QAC/C++ | 第19-20页 |
·Polyspace C verifier | 第20页 |
·StackAna1yzer | 第20-21页 |
·本章小结 | 第21-22页 |
第3章 内存访问和指针错误检查 | 第22-33页 |
·内存和指针错误种类 | 第22页 |
·基于标注的静态检测模型分析 | 第22-26页 |
·存储模型分析 | 第23-24页 |
·标注分类介绍和语义分析 | 第24-26页 |
·使用指针标注检查指针引用错误 | 第26-27页 |
·使用内存分配标注检查内存错误 | 第27-29页 |
·基于标注的检测过程 | 第29-32页 |
·本章小结 | 第32-33页 |
第4章 堆栈溢出检查 | 第33-62页 |
·堆栈溢出产生原因 | 第33-42页 |
·C语言的内存模型 | 第33-35页 |
·C语言的函数调用过程 | 第35-40页 |
·堆栈溢出的原因 | 第40-41页 |
·静态堆栈检测难点 | 第41-42页 |
·解决方案与关键技术 | 第42-50页 |
·设计目标 | 第42页 |
·函数堆栈使用及汇编代码 | 第42-44页 |
·函数调用关系图及RTL代码介绍 | 第44-47页 |
·调用图分析算法 | 第47-50页 |
·系统设计与实现 | 第50-61页 |
·调用关系图管理子模块设计 | 第53-55页 |
·函数堆栈分析子模块设计 | 第55-57页 |
·调用图分析子模块 | 第57-58页 |
·参数配置管理子模块 | 第58-60页 |
·流程控制模块 | 第60-61页 |
·本章小结 | 第61-62页 |
第5章 实验与测试 | 第62-69页 |
·功能测试 | 第62-66页 |
·测试环境 | 第62页 |
·测试文件 | 第62-63页 |
·测试结果 | 第63-66页 |
·性能分析 | 第66-68页 |
·结论 | 第68-69页 |
第6章 总结与展望 | 第69-71页 |
·总结 | 第69页 |
·不足与展望 | 第69-71页 |
参考文献 | 第71-74页 |
致谢 | 第74-75页 |
作者简历 | 第75页 |