Execution-Aware Program Reduction for WebAssembly via Record and Replay
Doehyun Baek, Daniel Lehmann, Ben L. Titzer, Sukyoung Ryu, Michael Pradel

TL;DR
This paper introduces execution-aware program reduction techniques, RR-Reduce and Hybrid-Reduce, that leverage runtime behavior via record and replay to produce significantly smaller WebAssembly programs for debugging.
Contribution
The paper presents novel execution-aware reduction methods that outperform existing techniques by utilizing execution behavior to produce smaller, more manageable WebAssembly programs for debugging.
Findings
RR-Reduce reduces programs to 1.20% of original size in 14.5 minutes
Hybrid-Reduce reduces programs to 0.13% of original size in 3.5 hours
Both methods outperform state-of-the-art techniques in reduction speed and size
Abstract
WebAssembly (Wasm) programs may trigger bugs in their engine implementations. To aid debugging, program reduction techniques try to produce a smaller variant of the input program that still triggers the bug. However, existing execution-unaware program reduction techniques struggle with large and complex Wasm programs, because they rely on static information and apply syntactic transformations, while ignoring the valuable information offered by the input program's execution behavior. We present RR-Reduce and Hybrid-Reduce, novel execution-aware program reduction techniques that leverage execution behaviors via record and replay. RR-Reduce identifies a bug-triggering function as the target function, isolates that function from the rest of the program, and generates a reduced program that replays only the interactions between the target function and the rest of the program. Hybrid-Reduce…
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 Engineering Research · Security and Verification in Computing
