Empc: Effective Path Prioritization for Symbolic Execution with Path Cover
Shuangjie Yao, Dongdong She

TL;DR
Empc is a novel path prioritization method for symbolic execution that uses minimal path covers to efficiently explore code, significantly improving coverage, bug detection, and reducing memory usage.
Contribution
This work introduces Empc, a new path prioritization technique leveraging multiple minimal path covers to enhance symbolic execution's effectiveness and scalability.
Findings
Empc covers 19.6% more basic blocks than KLEE's best strategy.
Empc finds 24 more security violations than the state-of-the-art.
Empc reduces KLEE's memory usage by up to 93.5%.
Abstract
Symbolic execution is a powerful program analysis technique that can formally reason the correctness of program behaviors and detect software bugs. It can systematically explore the execution paths of the tested program. But it suffers from an inherent limitation: path explosion. Path explosion occurs when symbolic execution encounters an overwhelming number (exponential to the program size) of paths that need to be symbolically reasoned. It severely impacts the scalability and performance of symbolic execution. To tackle this problem, previous works leverage various heuristics to prioritize paths for symbolic execution. They rank the exponential number of paths using static rules or heuristics and explore the paths with the highest rank. However, in practice, these works often fail to generalize to diverse programs. In this work, we propose a novel and effective path prioritization…
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.
Code & Models
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsSoftware Testing and Debugging Techniques · VLSI and Analog Circuit Testing · Radiation Effects in Electronics
