首页> 外文会议>25th annual ACM conference on object oriented programming, systems, languages and applications 2010 >Symbolic Heap Abstraction with Demand-Driven Axiomatization of Memory Invariants
【24h】

Symbolic Heap Abstraction with Demand-Driven Axiomatization of Memory Invariants

机译:带有需求不变的内存不变式公理化的符号堆抽象

获取原文
获取原文并翻译 | 示例

摘要

Many relational static analysis techniques for precise reasoning about heap contents perform an explicit case analysis of all possible heaps that can arise. We argue that such precise relational reasoning can be obtained in a more scalable and economical way by enforcing the memory invariant that every concrete memory location stores one unique value directly on the heap abstraction. Our technique combines the strengths of analyses for precise reasoning about heap contents with approaches that prioritize axiomatization of memory invariants, such as the theory of arrays. Furthermore, by avoiding an explicit case analysis, our technique is scalable and powerful enough to analyze real-world programs with intricate use of arrays and pointers; in particular, we verify the absence of buffer overruns, incorrect casts, and null pointer dereferences in OpenSSH (over 26,000 lines of code) after fixing 4 previously undiscovered bugs found by our system. Our experiments also show that the combination of reasoning about heap contents and enforcing existence and uniqueness invariants is crucial for this level of precision.
机译:许多用于精确推理堆内容的关系静态分析技术都会对可能出现的所有堆进行显式的案例分析。我们认为,可以通过强制每个不变内存位置在堆抽象上直接存储一个唯一值的内存不变性,以更可扩展和经济的方式获得这种精确的关系推理。我们的技术结合了对堆内容进行精确推理的分析优势,并结合了优先考虑内存不变式公理化的方法(例如数组理论)。此外,通过避免显式的案例分析,我们的技术具有足够的可伸缩性和强大的功能,可以复杂地使用数组和指针来分析实际程序。特别是,我们修复了系统发现的4个先前未发现的错误之后,验证了OpenSSH(超过26,000行代码)中是否没有缓冲区溢出,错误的强制转换和空指针取消引用。我们的实验还表明,关于堆内容的推理以及强制存在和唯一性不变式的组合对于此级别的精度至关重要。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号