paperbot · PL 论文追踪

全部论文 待读 收藏

P2 Compiler bug isolation via effective witness test program generation

通过生成有效见证测试程序实现编译器缺陷隔离
FSE Proceedings of the 2019 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering2019匹配度 2/10 · 论文研究编译器缺陷隔离,通过生成见证测试程序和覆盖率比较进行调试,属于PL/编译与测试方向,但未涉及静态分析、LLM/Agent、浮点程序分析或贝叶斯程序分析,与用户当前核心研究方向交叉很弱。引用 55 inbox
Junjie Chen, Jiaqi Han, Peiyi Sun, Lingming Zhang, Dan Hao, Lu Zhang
crossref: 2026-09-12

AI 速览

一句话:提出 DiWi,将编译器缺陷隔离转化为搜索问题,通过生成有效见证测试程序并比较覆盖率来隔离缺陷。

编译器缺陷通常缺乏调试信息,给定触发缺陷的测试程序,编译过程常涉及数百个文件而使其成为可疑文件,现有自动化缺陷隔离技术因可扩展性或有效性不足难以适用于编译器。本文将编译器缺陷隔离转化为搜索问题:寻找一组能排除无辜编译器文件的有效见证测试程序。据此提出 DiWi:设计见证变异规则对失败测试程序进行变异,用启发式搜索策略生成有效见证测试程序集合,再比较其覆盖率、沿用基于频谱的隔离思路定位缺陷。在 GCC 与 LLVM 的 90 个真实缺陷上,DiWi 在 Top-10/Top-20 文件内分别隔离出 66.67%/78.89% 的缺陷,显著优于现有最先进技术。

问题
编译器缺陷可产生少量调试信息,一次编译往往牵涉数百个文件而全部成为可疑对象,而现有自动化缺陷隔离技术受可扩展性与有效性限制,无法直接应用于编译器。
方法
将编译器缺陷隔离形式化为搜索问题:设计见证变异规则对给定失败测试程序进行变异,并以启发式搜索策略生成一组能排除无辜文件的有效见证测试程序,最后比较其覆盖率、按基于频谱的缺陷隔离思路定位缺陷文件。
评估
在 GCC 与 LLVM 的 90 个真实编译器缺陷上进行实验,衡量 Top-10/Top-20 文件内的隔离成功率,并与当前最先进的缺陷隔离技术比较。
原文摘要(Abstract)

Compiler bugs are extremely harmful, but are notoriously difficult to debug because compiler bugs usually produce few debugging information. Given a bug-triggering test program for a compiler, hundreds of compiler files are usually involved during compilation, and thus are suspect buggy files. Although there are lots of automated bug isolation techniques, they are not applicable to compilers due to the scalability or effectiveness problem. To solve this problem, in this paper, we transform the compiler bug isolation problem into a search problem, i.e., searching for a set of effective witness test programs that are able to eliminate innocent compiler files from suspects. Based on this intuition, we propose an automated compiler bug isolation technique, DiWi, which (1) proposes a heuristic-based search strategy to generate such a set of effective witness test programs via applying our designed witnessing mutation rules to the given failing test program, and (2) compares their coverage to isolate bugs following the practice of spectrum-based bug isolation. The experimental results on 90 real bugs from popular GCC and LLVM compilers show that DiWi effectively isolates 66.67%/78.89% bugs within Top-10/Top-20 compiler files, significantly outperforming state-of-the-art bug isolation techniques.

链接与引用

DOI 原文 · PDF(开放获取) ·

BibTeX
@inproceedings{paperbot5119,
  title = {Compiler bug isolation via effective witness test program generation},
  author = {Junjie Chen and Jiaqi Han and Peiyi Sun and Lingming Zhang and Dan Hao and Lu Zhang},
  booktitle = {FSE},
  year = {2019},
  doi = {10.1145/3338906.3338957}
}