Title
The Floating-Point Extension of Symbolic Execution Engine for Bug Detection.
Abstract
Many existing symbolic execution engines for bug detection often ignore floating-point types and operations. That will result in imprecise reasoning about the feasibility of program paths, which in turn leads to false positives and negatives. Recently, there are quite some progress in satisfiability modulo theories (SMT) solving, and some tools are able to support floating-point arithmetic. Nevertheless, naturally extending a symbolic execution engine and directly replacing the back-end with the new SMT solver will not make a good static analyzer for floating-point programs. In this paper, we extend an existing symbolic execution engine for C program bug finding, so that it can deal with floating-point arithmetic and mathematical functions. For the mathematical functions, we employ an abstract model to keep a balance between overhead and precision. We also introduce a strategy, Lazy-verification, to reduce the number of SMT solver calls. We implemented our approach as a tool called Canalyze-fp. Experiments with self-developed benchmarks and non-trivial open source programs show that the proposed approach can effectively avoid the false positives and negatives, without introducing too much overhead.
Year
DOI
Venue
2016
10.1109/APSEC.2016.9
Asia-Pacific Software Engineering Conference
Keywords
Field
DocType
floating-point program,symbolic execution,false positive,false negative
Programming language,Function (mathematics),Floating point,Computer science,Software bug,Real-time computing,Memory management,Symbolic execution,False positive paradox,Satisfiability modulo theories
Conference
ISSN
Citations 
PageRank 
1530-1362
0
0.34
References 
Authors
0
6
Name
Order
Citations
PageRank
Xingming Wu14313.16
Zhenbo Xu2303.75
Dong Yan344.30
Tianyong Wu4496.34
Jun Yan524821.97
Jian Zhang628824.45