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

被引:0
作者
Wang, Kai [1 ]
Hussain, Aftab [1 ]
Zuo, Zhiqiang [1 ]
Xu, Guoqing [1 ]
Sani, Ardalan Amiri [1 ]
机构
[1] Univ Calif Irvine, Irvine, CA 92717 USA
来源
TWENTY-SECOND INTERNATIONAL CONFERENCE ON ARCHITECTURAL SUPPORT FOR PROGRAMMING LANGUAGES AND OPERATING SYSTEMS (ASPLOS XXII) | 2017年
基金
美国国家科学基金会;
关键词
Static analysis; graph processing; disk-based systems; DATA-DEPENDENCE ANALYSIS; CONTEXT-SENSITIVITY; FRAMEWORK;
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
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.
引用
收藏
页码:389 / 404
页数:16
相关论文
共 103 条
[1]   An Overview of the Saturn Project [J].
Aiken, Alex ;
Bugrara, Suhabe ;
Dillig, Isil ;
Dillig, Thomas ;
Hackett, Brian ;
Hawkins, Peter .
PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, :43-48
[2]   Analysis of recursive state machines [J].
Alur, R ;
Benedikt, M ;
Etessami, K ;
Godefroid, P ;
Reps, T ;
Yannakakis, M .
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (04) :786-818
[3]  
Alur Rajeev, 2004, P 36 ANN ACM S THEOR, P202, DOI DOI 10.1145/1007352.1007390
[4]  
Alur Rajeev., 2007, Symp. on Principles of Database Systems, P233, DOI DOI 10.1145/1265530.1265564
[5]  
[Anonymous], 2016, COMMUNICATION
[6]  
[Anonymous], 2016, The GrammaTech CodeSonar static checker
[7]  
[Anonymous], 2016, The Coverity code checker
[8]  
[Anonymous], 2015, The findbugs Java static checker
[9]  
[Anonymous], 2016, The HP Fortify static checker
[10]  
[Anonymous], RV