Accurate Interprocedural Null-Dereference Analysis for Java']Java

被引:41
作者
Nanda, Mangala Gowri [1 ]
Sinha, Saurabh [1 ]
机构
[1] IBM Corp, India Res Lab, Armonk, NY 10504 USA
来源
2009 31ST INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, PROCEEDINGS | 2009年
关键词
D O I
10.1109/ICSE.2009.5070515
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
Null dereference is a commonly occurring defect in Java programs, and many static-analysis tools identify such defects. However, most of the existing tools perform a limited interprocedural analysis. In this paper, we Present an interprocedural path-sensitive and context-sensitive analysis for identifying mill dereferences. Starting at a dereference statement, our approach performs a backward demand-driven analysis to identify precisely paths along which mill values may flow to the dereference. The demand-driven analysis avoids an exhaustive program exploration, which lets it scale to large programs. We present the results of empirical studies conducted using large open-source and commercial products. Our results show that: (1) our approach detects fewer false positives, and signficantly more interprocedural true positives, than other commonly used tools; (2) the analysis scales to large subjects: and (3) the identified defects are often deleted in subsequent releases, which indicates that the reported defects are important.
引用
收藏
页码:133 / 143
页数:11
相关论文
共 17 条
[1]   Evaluating Static Analysis Defect Warnings On Production Software [J].
Ayewah, Nathaniel ;
Pugh, William ;
Morgenthaler, J. David ;
Penix, John ;
Zhou, YuQian .
PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, :1-+
[2]  
Babic D, 2008, ICSE'08 PROCEEDINGS OF THE THIRTIETH INTERNATIONAL CONFERENCE ON SOFTWARE ENGINEERING, P211, DOI 10.1145/1368088.1368118
[3]  
Bush WR, 2000, SOFTWARE PRACT EXPER, V30, P775, DOI 10.1002/(SICI)1097-024X(200006)30:7<775::AID-SPE309>3.0.CO
[4]  
2-H
[5]   Static Error Detection using Semantic Inconsistency Inference [J].
Dillig, Isil ;
Dillig, Thomas ;
Aiken, Alex .
PLDI'07: PROCEEDINGS OF THE 2007 ACM SIGPLAN CONFERENCE ON PROGRAMMING LANGUAGE DESIGN AND IMPLEMENTATION, 2007, :435-445
[6]  
Engler Dawson R., 2001, Proceedings of the 18th ACM Symposium on Operating Systems Principles, P57
[7]  
FLANAGAN C, 2002, P ACM SIGPLAN 2002 C, P234
[8]   Finding bugs is easy [J].
Hovemeyer, D ;
Pugh, W .
ACM SIGPLAN NOTICES, 2004, 39 (12) :92-106
[9]  
Hovemeyer D., 2005, ACM SIGSOFT Software Engineering Notes, P13
[10]   Finding More Null Pointer Bugs, But Not Too Many [J].
Hovemeyer, David ;
Pugh, William .
PASTE'07 PROCEEDINGS OF THE 2007 ACM SIGPLAN- SIGSOFT WORKSHOP ON PROGRAM ANALYSIS FOR SOFTWARE TOOLS & ENGINEERING, 2007, :9-+