SemLoc:面向故障定位的结构化自由形式 LLM 推理
软件工程
2026-04-01 v1 人工智能
摘要
故障定位识别程序中导致观察到故障的程序位置。现有技术使用语法光谱对可疑代码进行排序——这些光谱来源于执行结构,如语句覆盖、控制流分支或依赖可达性。这些信号在语义错误中会折叠,因为失败和通过的执行遵循相同的代码路径,仅在语义意图是否被满足方面存在差异。最近的 LLM 方法引入了语义推理,但产生随机且不可验证的输出,无法在不同测试之间系统性地交叉引用,也无法区分根本原因与级联效应。我们提出 SemLoc,一种基于结构化语义 grounding 的故障定位框架。SemLoc 将自由形式 LLM 推理转换为封闭的中间表示,将每个推断属性绑定到带类型的程序锚点,从而实现运行时检查并归因于程序结构。它执行经过仪器化的程序构建语义违规光谱——一个约束-测试矩阵——从而类似于基于覆盖的方法推导可疑性得分。反事实验证步骤进一步修剪过度近似的约束并隔离主要因果违规。我们在包含 250 个带单一语义故障的 Python 程序组成的语料库 SemFault-250 上评估 SemLoc,SemLoc 在五个覆盖型、简化型和 LLM 基线方法上取得优势,Top-1 准确率达 42.8%,Top-3 为 68%,同时将检查工作量降低至可执行代码的 7.6%。反事实验证提供额外的 12% 准确率提升,并识别主要因果语义约束。
关键词
引用
@article{arxiv.2603.29109,
title = {SemLoc: Structured Grounding of Free-Form LLM Reasoning for Fault Localization},
author = {Zhaorui Yang and Haichao Zhu and Qian Zhang and Rajiv Gupta and Ashish Kundu},
journal= {arXiv preprint arXiv:2603.29109},
year = {2026}
}