2012
DOI: 10.1007/978-3-642-34281-3_23
|View full text |Cite
|
Sign up to set email alerts
|

SMT-Based False Positive Elimination in Static Program Analysis

Abstract: Abstract. Static program analysis for bug detection in large C/C++ projects typically uses a high-level abstraction of the original program under investigation. As a result, so-called false positives are often inevitable, i.e., warnings that are not true bugs. In this work we present a novel abstraction refinement approach to automatically investigate and eliminate such false positives. Central to our approach is to view static analysis as a model checking problem, to iteratively compute infeasible sub-paths o… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
3
1
1

Citation Types

0
18
0
1

Year Published

2013
2013
2022
2022

Publication Types

Select...
4
3
2

Relationship

0
9

Authors

Journals

citations
Cited by 27 publications
(19 citation statements)
references
References 24 publications
0
18
0
1
Order By: Relevance
“…In the first category, the information is iteratively exchanged between the two techniques [3], [8], [9]. For example, Brat et al [3] and Junker et al [9] have combined these two in such a way static analysis component iteratively exchanges information with the model checker.…”
Section: Related Workmentioning
confidence: 99%
See 1 more Smart Citation
“…In the first category, the information is iteratively exchanged between the two techniques [3], [8], [9]. For example, Brat et al [3] and Junker et al [9] have combined these two in such a way static analysis component iteratively exchanges information with the model checker.…”
Section: Related Workmentioning
confidence: 99%
“…In the first category, the information is iteratively exchanged between the two techniques [3], [8], [9]. For example, Brat et al [3] and Junker et al [9] have combined these two in such a way static analysis component iteratively exchanges information with the model checker. In the second category, static analysis and model checking are cascaded by using one after the other in a fixed order [6], [12], [14], [15], [17], [19].…”
Section: Related Workmentioning
confidence: 99%
“…Hash code matching [25] and coding pattern analysis [12] can be used for identifying recurring violations. Model checking techniques [66], [67] and constraint solvers [68], [69] can also verify true violations and prune false positive. As discussed in Section 3.5, trivial violations reported by FindBugs can be treated as false positives by developers, but they cannot be identified by previous work since they are negligible issues and too trivial to be addressed by developers.…”
Section: Static Analysismentioning
confidence: 99%
“…However, these approaches still suffers from the scalability problem in practice. To avoid path explosion problem, many approaches rely on symbolic evaluation [24], [25]. To check whether a path is infeasible, the path is symbolically executed to generate a symbolic expression representing the path.…”
Section: Related Workmentioning
confidence: 99%