首页> 外文会议>Annual ACM conference on object oriented programming, systems, languages and applications >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个以前未被发白的错误之后,我们验证了缺失缓冲区溢出,强制指针和opull指针取消引用在openssh(超过26,000行代码)。我们的实验还表明,关于堆内容和强制存在和唯一性不变的推理结合对于这种精度至关重要。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号