为什么重要
DebugBench 专注于代码调试——一个被代码生成基准忽视但在实际开发中极为重要的能力。它覆盖 18 种 Bug 类型(语法错误、逻辑错误、引用错误等),横跨 C++、Java、Python,是评测 LLM 代码理解与修复能力的专项基准。
构建方式
从 LeetCode 题目中收集正确解法,用 GPT-4 按 18 种 Bug 分类注入 Bug。人工验证确保 Bug 是可修复的且测试用例能检测到。
任务示例
- 原始正确代码 + 注入的 Off-by-One Bug
- 模型需定位错误行并给出修复
- 用原始测试用例验证修复正确性
关键发现
- 逻辑错误的调试难度远高于语法错误
- 模型在 Python 上的调试能力显著优于 C++
- Few-shot 示例对调试任务帮助有限
关联基准
Defects4J(真实 Bug)、SWE-bench(仓库级修复)、EvalPlus(代码生成加固)
不足与展望
注入 Bug 的分布可能不代表真实 Bug 的分布。缺乏大型项目中的跨文件 Bug 场景。