Proceedings of the 2012 International Symposium on Software Testing and Analysis 2012
DOI: 10.1145/2338965.2336771
|View full text |Cite
|
Sign up to set email alerts
|

Memoized symbolic execution

Abstract: This paper introduces memoized symbolic execution (Memoise), a new approach for more efficient application of forward symbolic execution, which is a well-studied technique for systematic exploration of program behaviors based on bounded execution paths.Our key insight is that application of symbolic execution often requires several successive runs of the technique on largely similar underlying problems, e.g., running it once to check a program to find a bug, fixing the bug, and running it again to check the mo… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
69
0

Year Published

2013
2013
2022
2022

Publication Types

Select...
7
2

Relationship

2
7

Authors

Journals

citations
Cited by 82 publications
(69 citation statements)
references
References 28 publications
0
69
0
Order By: Relevance
“…Our approach first performs a simple normalization to eliminate the effect of memory relocation and instruction idioms. Yang et al [21] proposed Memoise, a trie-based data structure to cache the key elements of symbolic execution, so that successive forward symbolic execution can reuse previously computed results. Our union-find structure is like Memoise in that we both maintain an efficient tree-based data structure to avoid re-computation.…”
Section: Related Workmentioning
confidence: 99%
“…Our approach first performs a simple normalization to eliminate the effect of memory relocation and instruction idioms. Yang et al [21] proposed Memoise, a trie-based data structure to cache the key elements of symbolic execution, so that successive forward symbolic execution can reuse previously computed results. Our union-find structure is like Memoise in that we both maintain an efficient tree-based data structure to avoid re-computation.…”
Section: Related Workmentioning
confidence: 99%
“…The cost of method p's "re-execution" can be reduced by compositional symbolic execution, where we first build a memoization tree of method p, and then efficiently perform symbolic execution of method q by replaying the symbolic execution of p in the two calling contexts using p's memoization tree. Figure 3 (a) shows the memoization tree for method p. A memoization tree succinctly summarizes all the choices taken during symbolic execution [25]. Other than the root node n0, each node is created whenever a conditional statement is executed, recording the branch that is taken during symbolic execution, e.g., node n1 in Figure 3 (a) indicates that the true (1) branch of the conditional statement at line 2 in program p is executed.…”
Section: Example Compositional Analysismentioning
confidence: 99%
“…[2,3,19,22,25]. This paper provides additional information about the constraints encountered during symbolic execution (and in KLEE in particular), the effect of caching on solving time, and the relative performance of different solvers on several real benchmarks.…”
Section: Related Workmentioning
confidence: 99%