kirancodes.me
To Proof Maintenance & Beyond!

CPA-SymExec: efficient symbolic execution in CPAchecker

Dirk Beyer, Thomas Lemberger

Abstract

We present CPA-SymExec, a tool for symbolic execution that is implemented in the open-source, configurable verification framework CPAchecker. Our implementation automatically detects which symbolic facts to track, in order to obtain a small set of constraints that are necessary to decide reachability of a program area of interest. CPA-SymExec is based on abstraction and counterexample-guided abstraction refinement (CEGAR), and uses a constraint-interpolation approach to detect symbolic facts. We show that our implementation can better mitigate the path-explosion problem than symbolic execution without abstraction, by comparing the performance to the state-of-the-art Klee-based symbolic-execution engine Symbiotic and to Klee itself. For the experiments we use two kinds of analysis tasks: one for finding an executable path to a specific location of interest (e.g., if a test vector is desired to show that a certain behavior occurs), and one for confirming that no executable path to a specific location exists (e.g., if it is desired to show that a certain behavior never occurs). CPA-SymExec is released under the Apache 2 license and available (inclusive source code) at https://cpachecker.sosy-lab.org. A demonstration video is available at https://youtu.be/qoBHtvPKtnw.

BibTeX
@inproceedings{Beyer-Lemberger:ASE18,
  author    = {Dirk Beyer and
               Thomas Lemberger},
  title     = {{CPA-SymExec:} efficient symbolic execution in {CPAchecker}},
  booktitle = {ASE},
  pages     = {900--903},
  publisher = {{ACM}},
  year      = {2018},
}

Related papers