区域内存模型下的空指针引用缺陷精确检测

0 下载量 62 浏览量 更新于2024-08-28 收藏 361KB PDF 举报
本文主要探讨了"基于区域内存模型的空指针引用缺陷检测"这一主题,针对C程序中的空指针引用问题,提出了一种创新的解决方案。作者董玉坤、宫云战和金大海来自北京邮电大学网络与交换技术国家重点实验室和中国石油大学(华东)计算机与通信工程学院,他们聚焦于静态分析领域,尤其是针对程序缺陷检测的挑战。 首先,他们引入了Region-based Symbolic Three-Valued Logic (RS STL),这是一种新的逻辑框架,能够精确地描绘C程序执行过程中内存数据结构的布局、变量存储状态以及可寻址表达式的复杂关系。RS STL提供了一个细致的抽象层次,帮助分析者理解程序中内存的动态行为,这对于检测潜在的空指针引用至关重要。 接着,他们设计了一种结合抽象语法树(AST)和函数摘要的策略,用于识别被引用的指针。通过这种方式,他们能够有效地跟踪程序中的指针使用情况,尤其是在函数调用之间,这对于识别空指针引用的来源和影响范围大有裨益。 在检测阶段,他们将空指针引用的检测转换为对相应区域的检查。这意味着,通过RS STL的数据流分析结果,可以更加精准地定位到可能导致空指针错误的代码段,而非仅仅依赖于单一的指针值。这种方法显著提高了检测的准确性和效率,减少了漏报的可能性。 文章强调,他们的方法在保持较高检测准确性的前提下,有效降低了空指针引用缺陷的遗漏,这对于软件质量和安全性有着重要的实际意义。研究结果通过关键词如“空指针引用”、“内存模型”、“静态分析”和“函数摘要”来总结,而实验对比结果显示了其优越性。该研究被归类为计算机科学的T类文献,发表在《电子学报》上,并提供了相关的DOI和文章编号,以便于学术界进一步追踪和引用。 这篇研究论文提供了一种创新且实用的方法,以解决C程序中空指针引用缺陷的检测问题,对于软件开发人员和静态代码分析工具的开发者来说,具有很高的参考价值。