Efficient Loop Navigation for Symbolic Execution
Jan Obdrzalek, Marek Trtik

TL;DR
This paper presents a novel technique for efficient loop navigation in symbolic execution, significantly reducing analysis time by inferring and solving constraint systems to guide path exploration through loops.
Contribution
The paper introduces a new method that constructs and solves constraint systems to steer symbolic execution around loops, improving efficiency over existing tools.
Findings
Significant reduction in symbolic execution time on loop-heavy programs
Our method outperforms state-of-the-art tools by completing analysis in seconds
Effective in identifying unreachable target locations
Abstract
Symbolic execution is a successful and very popular technique used in software verification and testing. A key limitation of symbolic execution is in dealing with code containing loops. The problem is that even a single loop can generate a huge number of different symbolic execution paths, corresponding to different number of loop iterations and taking various paths through the loop. We introduce a technique which, given a start location above some loops and a target location anywhere below these loops, returns a feasible path between these two locations, if such a path exists. The technique infers a collection of constraint systems from the program and uses them to steer the symbolic execution towards the target. On reaching a loop it iteratively solves the appropriate constraint system to find out which path through this loop to take, or, alternatively, whether to continue below the…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · Software Reliability and Analysis Research · Software Engineering Research
