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