• DocumentCode
    1993872
  • Title

    Accurate Interprocedural Null-Dereference Analysis for Java

  • Author

    Nanda, Mangala Gowri ; Sinha, Saurabh

  • Author_Institution
    IBM India Res. Lab., New Delhi
  • fYear
    2009
  • fDate
    16-24 May 2009
  • Firstpage
    133
  • Lastpage
    143
  • 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;
  • fLanguage
    English
  • Publisher
    ieee
  • Conference_Titel
    Software Engineering, 2009. ICSE 2009. IEEE 31st International Conference on
  • Conference_Location
    Vancouver, BC
  • ISSN
    0270-5257
  • Print_ISBN
    978-1-4244-3453-4
  • Type

    conf

  • DOI
    10.1109/ICSE.2009.5070515
  • Filename
    5070515