中文

编译器模糊测试突变器的 bug 历史来源

软件工程 2025-10-10 v1

摘要

编译器作为当今关键基础设施,其 bug 可能产生深远的负面影响。模版化模糊测试有助于通过系统性变异编译器输入 (即程序) 来检测编译器 bug,其效果取决于所用突变器的质量。然而,目前尚无研究将编译器 bug 历史作为突变器来源。我们提出 IssueMut,首个从 bug 历史中提取编译器模糊测试突变器的方法。我们的洞见是,bug 报告包含有关诱发编译器 bug 的程序元素线索,可引导模糊测试器发现类似 bug。IssueMut 使用自动化方法从 bug 报告中挖掘突变器,并将其集成到现有模糊测试器中。我们使用 IssueMut 从 1760 条 GCC 和 LLVM bug 报告中挖掘出 587 个突变器。随后,我们对这些编译器及其所有测试输入作为种子语料库运行 IssueMut。我们发现,“bug 历史”突变器有效:它们发现了一些现代编译器模糊测试器未发现的新 bug——分别在 GCC 中发现 28 个,在 LLVM 中发现 37 个,其中 60 个被确认或修复,验证了我们利用 bug 历史中丰富信息的观点,编译器模糊测试器应当从中受益。

关键词

引用

@article{arxiv.2510.07834,
  title  = {Bug Histories as Sources of Compiler Fuzzing Mutators},
  author = {Lingjun Liu and Feiran Qin and Owolabi Legunsen and Marcelo d'Amorim},
  journal= {arXiv preprint arXiv:2510.07834},
  year   = {2025}
}