SATURN: A scalable framework for error detection using Boolean satisfiability

被引:58
作者
Xie, Yichen [1 ]
Aiken, Alex [1 ]
机构
[1] Stanford Univ, Stanford, CA 94305 USA
来源
ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS | 2007年 / 29卷 / 03期
关键词
program analysis; error detection; Boolean satisfiability;
D O I
10.1145/1232420.1232423
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
This article presents SATURN, a general framework for building precise and scalable static error detection systems. SATURN exploits recent advances in Boolean satisfiability (SAT) solvers and is path sensitive, precise down to the bit level, and models pointers and heap data. Our approach is also highly scalable, which we achieve using two techniques. First, for each program function, several optimizations compress the size of the Boolean formulas that model the control flow and data flow and the heap locations accessed by a function. Second, summaries in the spirit of type signatures are computed for each function, allowing interprocedural analysis without a dramatic increase in the size of the Boolean constraints to be solved. We have experimentally validated our approach by conducting two case studies involving a Linux lock checker and a memory leak checker. Results from the experiments show that our system scales well, parallelizes well, and finds more errors with fewer false positives than previous static error detection systems.
引用
收藏
页数:43
相关论文
共 34 条
[1]  
Aho Alfred V., 1986, ADDISON WESLEY SERIE
[2]  
AIKEN A, 2003, PLDI 03, P129
[3]  
BALL T, 2001, LECT NOTES COMPUTER, V2057, P103
[4]  
BALL T, 2004, P 4 INT C INT FORM M
[5]  
BRYANT RE, 1986, IEEE T COMPUT, V35, P677, DOI 10.1109/TC.1986.1676819
[6]  
Bush WR, 2000, SOFTWARE PRACT EXPER, V30, P775, DOI 10.1002/(SICI)1097-024X(200006)30:7<775::AID-SPE309>3.0.CO
[7]  
2-H
[8]  
Chilimbi T. M., 2004, P 11 INT C ARCH SUPP
[9]  
CHOU A, 2003, THESIS STANFORD U ST
[10]   A tool for checking ANSI-C programs [J].
Clarke, E ;
Kroening, D ;
Lerda, F .
TOOLS AND ALGORITHMS FOR THE CONSTRUCTION AND ANALYSIS OF SYSTEMS, PROCEEDINGS, 2004, 2988 :168-176