SMT-based false positive elimination in static program analysis

26Citations
Citations of this article
16Readers
Mendeley users who have this article in their library.
Get full text

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 of infeasible paths using SMT solvers, and to refine our models by adding observer automata to exclude such paths. Based on this new framework we present an implementation of the approach into the static analyzer Goanna and discuss a number of real-life experiments on larger C code projects, demonstrating that we were able to remove most false positives automatically. © 2012 Springer-Verlag.

Cite

CITATION STYLE

APA

Junker, M., Huuck, R., Fehnker, A., & Knapp, A. (2012). SMT-based false positive elimination in static program analysis. In Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics) (Vol. 7635 LNCS, pp. 316–331). https://doi.org/10.1007/978-3-642-34281-3_23

Register to see more suggestions

Mendeley helps you to discover research relevant for your work.

Already have an account?

Save time finding and organizing research with Mendeley

Sign up for free