π€ AI Summary
In WebAssembly (Wasm) engine debugging, existing syntax-driven program reduction techniques suffer from low efficiency on large, complex programs due to their neglect of dynamic execution behavior. To address this, we propose an execution-aware reduction framework introducing two novel paradigms: RR-Reduce and Hybrid-Reduce. RR-Reduce leverages record-and-replay to isolate and minimize the core buggy function along with its runtime interactions. Hybrid-Reduce synergistically combines execution trace analysis with syntactic reduction to jointly optimize both reduced size and reduction speed. Evaluation shows that RR-Reduce achieves a median reduction to 1.20% of the original program size in just 14.5 minutesβ33.15Γ faster than state-of-the-art baselines. Hybrid-Reduce further reduces program size to 0.13%, outperforming prior approaches by 2β3Γ in both minimality and speed, thereby significantly enhancing bug localization efficiency in Wasm engines.
π 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 combines a complementary execution-unaware reduction technique with RR-Reduce to further reduce program size. We evaluate RR-Reduce and Hybrid-Reduce on 28 Wasm programs that trigger a diverse set of bugs in three engines. On average, RR-Reduce reduces the programs to 1.20 percent of their original size in 14.5 minutes, which outperforms the state of the art by 33.15 times in terms of reduction time. Hybrid-Reduce reduces the programs to 0.13 percent of their original size in 3.5 hours, which outperforms the state of the art by 3.42 times in terms of reduced program size and 2.26 times in terms of reduction time. We envision RR-Reduce as the go-to tool for rapid, on-demand debugging in minutes, and Hybrid-Reduce for scenarios where developers require the smallest possible programs.