RepoDebug
收藏arXiv2025-09-04 更新2025-09-06 收录
下载链接:
https:// 'https: ree-sitter
下载链接
链接失效反馈官方服务:
资源简介:
RepoDebug是一个多任务和多语言的代码调试数据集,涵盖了8种常用编程语言和3种调试任务。该数据集由北京航空航天大学计算机科学与工程学院、华东师范大学、北京理工大学和百度公司的研究人员共同构建,旨在评估大型语言模型在代码调试方面的能力。数据集包含22种不同的错误类型,分为4种主要类型:语法错误、引用错误、逻辑错误和多重错误。每个实例都包含一个有错误的代码文件、错误类型和错误位置的详细信息。RepoDebug数据集可用于评估LLMs在识别、定位和修复代码错误方面的能力,并为LLMs在代码调试领域的进一步研究提供支持。
RepoDebug is a multi-task and multilingual code debugging dataset that covers 8 widely used programming languages and 3 debugging tasks. This dataset was jointly constructed by researchers from the School of Computer Science and Engineering, Beihang University, East China Normal University, Beijing Institute of Technology, and Baidu Inc., aiming to evaluate the code debugging capabilities of large language models (LLMs). The dataset includes 22 distinct error types, which are categorized into four main types: syntax errors, reference errors, logical errors, and multiple errors. Each instance contains a buggy code file, along with detailed information about the error type and error location. The RepoDebug dataset can be used to assess the abilities of LLMs to identify, locate, and fix code errors, and provides support for further research on LLMs in the field of code debugging.
提供机构:
北京航空航天大学计算机科学与工程学院,华东师范大学,北京理工大学,百度公司
创建时间:
2025-09-04
搜集汇总
数据集介绍
构建方式
RepoDebug的构建始于从GitHub精选63个创建于2022年之后的优质仓库,涵盖8种编程语言,以规避数据泄露风险。其核心创新在于采用基于抽象语法树(AST)的精准错误注入方法,通过tree-sitter解析代码结构,在语法树节点上系统性地植入22种错误子类型,并精确记录错误位置。构建流程包含自动化过滤与人工抽检双重校验,确保错误的有效性与代码的可编译性,最终形成包含训练集与测试集的高质量数据集。
特点
RepoDebug作为首个面向仓库级的多任务、多语言调试数据集,具备显著的多样性与现实性。它覆盖8种编程语言、3项核心调试任务(错误识别、定位与修复),并精心设计了4大类共22种错误子类型,从语法错误到跨文件引用的复杂逻辑错误一应俱全。尤为突出的是,数据集纳入了跨文件影响的错误实例,模拟真实开发场景,且错误类型丰富度远超现有基准,为全面评估大语言模型的仓库级调试能力提供了独特视角。
使用方法
RepoDebug的使用围绕三项递进式任务展开:给定含有错误的仓库级代码文件,模型需首先判断代码是否存在错误并识别其所属的22种子类型之一,随后精确定位所有错误所在的行号,最后针对每个错误位置生成正确的修复代码。评估采用多维度指标,包括错误识别准确率、单错误与全错误定位成功率,以及基于编辑相似度、精确匹配和执行通过率的程序修复能力,从而系统性地衡量模型从感知到修复的完整调试链条。
背景与挑战
背景概述
随着大语言模型在代码调试领域展现出日益显著的潜力,自动程序修复技术已成为提升软件开发效率的关键手段。然而,现有调试数据集多聚焦于函数级别的代码修复能力评估,忽视了更为复杂且贴近真实场景的仓库级调试需求。为填补这一空白,北京航空航天大学与华东师范大学等机构的研究人员于2025年提出了RepoDebug数据集。该数据集由刘菁菁、刘泽明等人主导构建,涵盖C、C#、Go、Java、JavaScript、Python、Ruby和Rust共8种主流编程语言,并支持错误识别、错误定位与自动程序修复三项核心调试任务。RepoDebug从63个GitHub仓库中精心采集数据,通过基于抽象语法树的错误注入方法,系统性地设计了22种错误子类型,囊括语法错误、引用错误、逻辑错误及复合错误四大类别,为全面评估大语言模型在仓库级代码调试中的能力提供了权威基准。
当前挑战
RepoDebug数据集所面临的挑战主要体现在两个方面。其一,仓库级代码调试本身具有高度复杂性,代码长度常逾数千行,错误可能跨文件传播,且复合错误类型多样,导致大语言模型在错误定位与修复任务中表现不佳。实验表明,即便性能最优的Claude 3.5 Sonnet模型,在错误识别任务上对复合错误的准确率仅达3.66%,远低于对语法错误的54.15%,凸显了模型在语义理解与多错误协同处理上的显著局限。其二,数据集构建过程亦充满挑战,包括从海量GitHub仓库中筛选高质量代码、利用树状语法解析器精确注入22种错误子类型而不破坏代码结构、以及通过自动化过滤与人工抽检双重机制确保错误的有效性与真实性。此外,数据泄露风险的防范、跨语言错误注入的一致性与可观测性的保障,均为构建过程中的关键难题。
常用场景
经典使用场景
在软件工程与人工智能的交叉领域中,代码调试是保障软件质量的关键环节。然而,现有基准多局限于函数级错误修复,难以反映真实项目中跨文件、跨语言的复杂调试场景。RepoDebug应运而生,作为首个多任务、多语言的仓库级代码调试数据集,它覆盖了C、C#、Go、Java等8种编程语言,并定义了22种细粒度错误子类型。该数据集最经典的使用场景是评估大语言模型在仓库级代码上的综合调试能力,包括错误识别、错误定位与自动程序修复三项核心任务。研究者可基于完整的仓库上下文,检验模型在面对跨文件引用、多错误交织等复杂情况时的表现,从而弥补传统函数级基准的评估盲区。
解决学术问题
RepoDebug的提出有效填补了仓库级代码调试评估领域的空白。此前,学术界对LLM调试能力的评测多聚焦于单一函数内的语法或逻辑错误,忽略了真实开发中多文件依赖、跨模块引用及多错误共存的挑战。该数据集通过引入22种错误子类型与多语言环境,系统性地揭示了现有模型在仓库级场景下的性能瓶颈——即便是表现最优的Claude 3.5 Sonnet,在错误定位与修复任务上仍远未达到实用水平。这一发现促使研究者重新审视LLM在代码理解与语义推理方面的局限性,推动了面向长上下文、跨文件依赖的调试模型与评估方法的发展。
衍生相关工作
RepoDebug的发布催生了一系列富有启发性的衍生研究。在数据集构建方法上,其基于抽象语法树的错误注入策略被后续工作借鉴,用于生成更贴近真实开发者错误的合成数据。在模型评估方面,研究者基于RepoDebug的跨语言与多任务特性,开发了针对仓库级代码调试的专门化提示工程与微调策略。此外,该数据集对错误类型与代码长度的分析结果,直接启发了面向长代码上下文的注意力机制改进工作,以及针对多错误叠加场景的渐进式修复框架。这些衍生研究共同推动了代码智能领域从函数级向仓库级的范式转型,使LLM的调试能力更贴近工业级应用需求。
以上内容由遇见数据集搜集并总结生成



