论文

从代码库到罪魁祸首 (C2C):通过语义检索和分层强化学习减少错误的搜索空间

From Codebase to Culprit (C2C): Reducing the Search Space for Bugs with Semantic Retrieval and Hierarchical Reinforcement Learning

上下文与知识检索增强

摘要

我们引入了 C2C(从代码库到罪魁祸首),这是一个用于精确错误定位的框架,可逐步减少跨多个粒度级别(文件、函数和代码行)的调试搜索空间。为了反映开发人员自然的自上而下的调试工作流程,C2C 在两阶段过程中集成了语义检索和分层强化学习 (HRL)。首先,它使用错误报告文本(包括可用的堆栈跟踪信息),通过语义向量相似性搜索,针对嵌入数据库执行面向召回的错误候选检索,其中嵌入通过与 CodeBERT 的对比学习进行微调。建立在减少的搜索空间的基础上,HRL 框架逐步定位错误,从文件到函数并最终到单行代码进行推理。与之前以单一粒度运行的方法不同,C2C 可以实现多分辨率本地化,同时保持决策之间的上下文一致性。在现实世界的 Java 和 Python 数据集上的实验表明,C2C 提高了检索精度和定位精度。消融研究进一步强调了分层分解、结构化学习信号和奖励塑造在推进多级错误定位方面的贡献。