2014
DOI: 10.1007/978-3-319-13338-6_21
|View full text |Cite
|
Sign up to set email alerts
|

A Comparative Study of Incremental Constraint Solving Approaches in Symbolic Execution

Abstract: Abstract. Constraint solving is a major source of cost in Symbolic Execution (SE). This paper presents a study to assess the importance of some sensible options for solving constraints in SE. The main observation is that stack-based approaches to incremental solving is often much faster compared to cache-based approaches, which are more popular. Considering all 96 C programs from the KLEE benchmark that we analyzed, the median speedup obtained with a (non-optimized) stack-based approach was of 5x. Results sugg… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1

Citation Types

0
6
0

Year Published

2016
2016
2023
2023

Publication Types

Select...
7
2
1

Relationship

0
10

Authors

Journals

citations
Cited by 20 publications
(8 citation statements)
references
References 22 publications
0
6
0
Order By: Relevance
“…Symbolic execution engines issue a huge number of queries to the constraint solver that are often large and complex when analyzing real-world programs. As a result, constraint solving dominates runtime for the majority of non-trivial programs [30,33]. Recent research has tackled the challenge by proposing several constraint solving optimizations that can help reduce constraint solving cost [5, 12, 21, 27, 33-35, 41, 45].…”
mentioning
confidence: 99%
“…Symbolic execution engines issue a huge number of queries to the constraint solver that are often large and complex when analyzing real-world programs. As a result, constraint solving dominates runtime for the majority of non-trivial programs [30,33]. Recent research has tackled the challenge by proposing several constraint solving optimizations that can help reduce constraint solving cost [5, 12, 21, 27, 33-35, 41, 45].…”
mentioning
confidence: 99%
“…KLEE has to make more feasibility checks (up to 2 per node of the FEP tree) than the concolic method and uses a constraint cache to limit solver calls. It does not benefit from incremental constraint solving or backtracking and this may make it less efficient [15] but breadth-first generation strategies are easily implemented. To do that in PathCrawler, while keeping the efficiency of backtracking, we used multi-threading.…”
Section: Related Workmentioning
confidence: 99%
“…State-of-the-art SMT solvers can efficiently handle huge expressions in some relevant logic theories, namely Booleans, Integers, Reals, the Mixed Theory of Integers and Reals, Strings, Fixed Size Bit-vectors, Arrays, Uninterpreted Functions and Uninterpreted Sorts [8], [9], [14], [15], [17], [19], and largely contribute to the industrial applicability of symbolic program analysis [5]. Despite the maturity of theories and tools, SMT solvers still represent a main bottleneck to the scalability of symbolic program analysis [24], [26], [28].…”
Section: Introductionmentioning
confidence: 99%