Taming the Hydra: Targeted Control-Flow Transformations for Dynamic Symbolic Execution

Read full text
Authors: Charitha Saumya, Muhammad Hassan, Rohan Gangaraju, Milind V. Kulkarni, Kirshanthan Sundararajah
Cited by: 0

Abstract

Dynamic Symbolic Execution (DSE) suffers from the path explosion problem when the target program has many conditional branches. The classical approach for managing the path explosion problem is dynamic state merging. Dynamic state merging combines similar symbolic program states to avoid the exponential growth in the number of states during DSE. However, state merging still requires solver invocations at each program branch, even when both paths of the branch are feasible. Moreover, the best path search strategy for DSE may not create the best state merging opportunities. Some drawbacks of state merging can be mitigated by compile-time state merging (i.e., branch elimination by converting control-flow into dataflow). In this paper, we propose a non-semantics-preserving but failure-preserving compiler transformation for removing expensive symbolic branches in a program to improve the scalability of DSE. We have developed a framework for detecting spurious bugs that our transformation can insert. Finally, we show that our transformation can significantly improve the performance of DSE on various benchmark programs and help improve the performance of coverage and bug discovery of large real-world programs.

Fields of Study & Subjects

Software Testing and Debugging Techniques Software System Performance and Reliability Software Engineering Research

Publication details

Journal / source
Proceedings of the ACM on Programming Languages
Volume
10
Issue
OOPSLA1
Pages
59–85
Publication date
10 April 2026
Language
EN