首页> 外文期刊>Computer architecture news >Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code
【24h】

Graspan: A Single-machine Disk-based Graph System for Interprocedural Static Analyses of Large-scale Systems Code

机译:Graspan:基于单机磁盘的图形系统,用于大规模系统代码的过程间静态分析

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

摘要

There is more than a decade-long history of using static analysis to find bugs in systems such as Linux. Most of the existing static analyses developed for these systems are simple checkers that find bugs based on pattern matching. Despite the presence of many sophisticated interprocedural analyses, few of them have been employed to improve checkers for systems code due to their complex implementations and poor scalability. In this paper, we revisit the scalability problem of interprocedural static analysis from a "Big Data" perspective. That is, we turn sophisticated code analysis into Big Data analytics and leverage novel data processing techniques to solve this traditional programming language problem. We develop Graspan, a disk-based parallel graph system that uses an edge-pair centric computation model to compute dynamic transitive closures on very large program graphs. We implement context-sensitive pointer/alias and dataflow analyses on Graspan. An evaluation of these analyses on large codebases such as Linux shows that their Graspan implementations scale to millions of lines of code and are much simpler than their original implementations. Moreover, we show that these analyses can be used to augment the existing checkers; these augmented checkers uncovered 132 new NULL pointer bugs and 1308 unnecessary NULL tests in Linux 4.4.0-rc5, PostgreSQL 8.3.9, and Apache httpd 2.2.18.
机译:使用静态分析查找Linux等系统中的错误已有十多年的历史。针对这些系统开发的大多数现有静态分析都是简单的检查器,它们可以基于模式匹配来发现错误。尽管存在许多复杂的过程间分析,但是由于它们复杂的实现和较差的可伸缩性,因此很少有人用于改进系统代码的检查器。在本文中,我们从“大数据”的角度重新审视了过程间静态分析的可伸缩性问题。也就是说,我们将复杂的代码分析转变为大数据分析,并利用新颖的数据处理技术来解决这种传统的编程语言问题。我们开发了Graspan,这是一个基于磁盘的并行图系统,它使用一个以边对为中心的计算模型来计算非常大的程序图上的动态传递闭包。我们在Graspan上实现了上下文相关的指针/别名和数据流分析。对大型代码库(例如Linux)的这些分析的评估表明,它们的Graspan实现可扩展到数百万行代码,并且比其原始实现简单得多。此外,我们证明了这些分析可以用来增强现有的检查器。这些增强的检查程序在Linux 4.4.0-rc5,PostgreSQL 8.3.9和Apache httpd 2.2.18中发现了132个新的NULL指针错误和1308个不必要的NULL测试。

著录项

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号