Compilers are fundamental to modern software development, making the effective identification and resolution of compiler faults essential. However, localizing these faults to specific source files remains highly challenging due to the complexity and scale of modern compiler infrastructures. In this study, we propose MultiConf, a novel approach that automatically isolates compiler faults by constructing multiple pairs of adversarial compilation configurations. Each adversarial compilation configuration pair consists of a failing configuration and its corresponding passing configuration, which differ in only a small number of fine-grained options. MultiConf generates failing configurations through a lightweight construction process and derives the corresponding passing configurations by selectively disabling bug-related fine-grained options. We then employ a Spectrum-Based Fault Localization (SBFL) formula to rank the suspiciousness of compiler source files. Each adversarial configuration pair independently produces a ranking, which is subsequently aggregated using a weighted voting scheme to derive a final suspiciousness ranking, enabling more accurate and robust fault localization. We evaluate MultiConf on a benchmark of 60 real-world GCC compiler bugs. The results demonstrate that MultiConf significantly outperforms existing compiler fault localization techniques in both effectiveness and efficiency. In particular, MultiConf successfully localizes 27 out of 60 bugs at the Top-1 file level, representing improvements of 35.0% and 28.6% over the two state-of-the-art approaches, Odfl(20) and Basic(21), respectively.
翻译:编译器是现代软件开发的基础,因此有效识别和解决编译器故障至关重要。然而,由于现代编译器基础设施的复杂性和规模,将这些故障定位到特定的源文件仍然极具挑战性。在本研究中,我们提出了MultiConf,一种通过构建多对对抗编译配置来自动隔离编译器故障的新方法。每对对抗编译配置由一个失败配置及其对应的通过配置组成,两者仅在少量细粒度选项上存在差异。MultiConf通过轻量级构建过程生成失败配置,并通过选择性禁用与错误相关的细粒度选项来推导对应的通过配置。随后,我们采用基于频谱的故障定位(SBFL)公式对编译器源文件的可疑度进行排序。每对对抗配置独立产生一个排序,随后通过加权投票方案进行聚合,得出最终的可疑度排序,从而实现更准确、更鲁棒的故障定位。我们在包含60个真实GCC编译器错误的基准测试上评估了MultiConf。结果表明,MultiConf在有效性和效率上均显著优于现有的编译器故障定位技术。具体而言,MultiConf在Top-1文件级别成功定位了60个错误中的27个,相较于两种最先进的方法Odfl(20)和Basic(21),分别提升了35.0%和28.6%。