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%。

0
下载
关闭预览

相关内容

编译器(Compiler),是一种计算机程序,它会将用某种编程语言写成的源代码(原始语言),转换成另一种编程语言(目标语言)。
[ICML2024]消除偏差:微调基础模型以进行半监督学习
专知会员服务
17+阅读 · 2024年5月23日
【CVPR2023】面向自监督视觉表示学习的混合自编码器
专知会员服务
25+阅读 · 2023年4月3日
[CVPR 2021] 序列到序列对比学习的文本识别
专知
10+阅读 · 2021年4月14日
使用 Keras Tuner 调节超参数
TensorFlow
15+阅读 · 2020年2月6日
使用CNN生成图像先验实现场景的盲图像去模糊
统计学习与视觉计算组
10+阅读 · 2018年6月14日
神经网络机器翻译原理:LSTM、seq2seq到Zero-Shot
北京思腾合力科技有限公司
11+阅读 · 2017年8月10日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
46+阅读 · 2015年12月31日
国家自然科学基金
6+阅读 · 2014年12月31日
国家自然科学基金
5+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
VIP会员
相关资讯
[CVPR 2021] 序列到序列对比学习的文本识别
专知
10+阅读 · 2021年4月14日
使用 Keras Tuner 调节超参数
TensorFlow
15+阅读 · 2020年2月6日
使用CNN生成图像先验实现场景的盲图像去模糊
统计学习与视觉计算组
10+阅读 · 2018年6月14日
神经网络机器翻译原理:LSTM、seq2seq到Zero-Shot
北京思腾合力科技有限公司
11+阅读 · 2017年8月10日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
46+阅读 · 2015年12月31日
国家自然科学基金
6+阅读 · 2014年12月31日
国家自然科学基金
5+阅读 · 2014年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员