Artefact for the ISSTA 2020 paper: Running symbolic execution forever
Author(s)
Busse, Frank
Nowack, Martin
Cadar, Cristian
Type
Software / Code
Abstract
When symbolic execution is used to analyse real-world applications, it often consumes all available memory in a relatively short amount of time, sometimes making it impossible to analyse an application for an extended period. In this paper, we present a technique that can record an ongoing symbolic execution analysis to disk and selectively restore paths of interest later, making it possible to run symbolic execution indefinitely.
To be successful, our approach addresses several essential research challenges related to detecting divergences on re-execution, storing long-running executions efficiently, changing search heuristics during re-execution, and providing a global view of the stored execution. Our extensive evaluation of 93 Linux applications shows that our approach is practical, enabling these applications to run for days while continuing to explore new execution paths.
To be successful, our approach addresses several essential research challenges related to detecting divergences on re-execution, storing long-running executions efficiently, changing search heuristics during re-execution, and providing a global view of the stored execution. Our extensive evaluation of 93 Linux applications shows that our approach is practical, enabling these applications to run for days while continuing to explore new execution paths.
Version
200615
Date Issued
2020-06-15
Citation
2020
Copyright Statement
https://creativecommons.org/licenses/by/4.0/legalcode
Subjects
symbolic execution
memoization
KLEE
MoKlee
software testing
coreutils
binutils
findutils
grep
libspng
tcpdump