Abstract

This paper presents EXE, an effective bug-finding tool that automatically generates inputs that crash real code. Instead of running code on manually or randomly constructed input, EXE runs it on symbolic input initially allowed to be "anything." As checked code runs, EXE tracks the constraints on each symbolic (i.e., input-derived) memory location. If a statement uses a symbolic value, EXE does not run it, but instead adds it as an input-constraint; all other statements run as usual. If code conditionally checks a symbolic expression, EXE forks execution, constraining the expression to be true on the true branch and false on the other. Because EXE reasons about all possible values on a path, it has much more…

Citation impact

788
total citations
FWCI
57.61
Percentile
100%
References
49
Citations per year

Authors

5

Topics & keywords

Keywords
  • Symbolic execution
  • Computer science
  • Programming language
  • Pointer (user interface)
  • Code (set theory)
  • Path (computing)
  • Debugging
  • Parallel computing
UN Sustainable Development Goals
  • Peace, Justice and strong institutions
No related works found for this paper.