Title : 
Accurate Interprocedural Null-Dereference Analysis for Java
         
        
            Author : 
Nanda, Mangala Gowri ; Sinha, Saurabh
         
        
            Author_Institution : 
IBM India Res. Lab., New Delhi
         
        
        
        
        
        
            Abstract : 
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 null dereferences. Starting at a dereference statement, our approach performs a backward demand-driven analysis to identify precisely paths along which null 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 significantly 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.
         
        
            Keywords : 
Java; program diagnostics; Java; backward demand-driven analysis; context-sensitive analysis; null-dereference analysis; path-sensitive analysis; static-analysis tool; Arithmetic; Computer bugs; Information analysis; Java; Open source software; Performance analysis; Safety;
         
        
        
        
            Conference_Titel : 
Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on
         
        
            Conference_Location : 
Vancouver, BC
         
        
        
            Print_ISBN : 
978-1-4244-3453-4
         
        
        
            DOI : 
10.1109/ICSE.2009.5070515