2005
DOI: 10.1145/1108768.1108798
|View full text |Cite
|
Sign up to set email alerts
|

Evaluating and tuning a static analysis to find null pointer bugs

Abstract: Using static analysis to detect memory access errors, such as null pointer dereferences, is not a new problem. However, much of the previous work has used rather sophisticated analysis techniques in order to detect such errors.In this paper we show that simple analysis techniques can be used to identify many such software defects, both in production code and in student code. In order to make our analysis both simple and effective, we use a non-standard analysis which is neither complete nor sound. However, we … Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
4
1

Citation Types

0
60
0

Year Published

2007
2007
2022
2022

Publication Types

Select...
4
2
2

Relationship

0
8

Authors

Journals

citations
Cited by 63 publications
(60 citation statements)
references
References 16 publications
0
60
0
Order By: Relevance
“…Null pointer dereferences are frequent [31], and have been reported as "a very serious threat to the safety of programs" and are the most common error in Java programs [7]. Many classes of null pointer exceptions can be found automatically by static analyses [15]. Addressing such risks with fault-tolerance techniques is a promising avenue.…”
Section: Introductionmentioning
confidence: 99%
“…Null pointer dereferences are frequent [31], and have been reported as "a very serious threat to the safety of programs" and are the most common error in Java programs [7]. Many classes of null pointer exceptions can be found automatically by static analyses [15]. Addressing such risks with fault-tolerance techniques is a promising avenue.…”
Section: Introductionmentioning
confidence: 99%
“…However, no mechanism for actually checking non-null types was presented. The FindBugs tool checks @NonNull annotations using a dataflow analysis that accounts for comparisons against null [16,15]. Their approach does not employ type aliasing and provides no guarantee that all potential errors will be reported.…”
Section: Related Workmentioning
confidence: 99%
“…[25,10,16,3,8]), none has directly addressed the problem of bytecode verification. While these existing techniques could be used for this purpose, they operate on higher-level program representations and must first translate bytecode into their representation.…”
Section: Introductionmentioning
confidence: 99%
“…In response, many tools have been developed to reduce the overwhelming cost of finding and fixing bugs (e.g. [4,15,20,23,30,31,45,47,53,71]) and to ensure long-term system understandability and evolvability (e.g. [11,12,13,41,55,58,59]).…”
Section: Introductionmentioning
confidence: 99%
“…[11,12,13,41,55,58,59]). Despite these advancements, developers still struggle to handle the volume of maintenance tasks that arise in practice [31].…”
Section: Introductionmentioning
confidence: 99%