摘要
虽然大型语言模型在代码生成方面取得了重大进展,但生成的代码通过率受到细微错误的限制,通常需要人工干预才能通过测试,尤其是在处理复杂问题时。现有的基于LLM的调试系统将生成的程序视为整体单元,无法解决不同粒度级别的错误,从低级语法错误到高级算法缺陷。在本文中,我们介绍了多粒度调试器 (MGDebugger),这是一种分层代码调试器,它通过隔离、识别和解决不同粒度级别的错误来进行调试。MGDebugger 将有问题的代码分解成子函数的分层树结构,每一层代表特定粒度的错误。在调试过程中,它会分析每个子函数,并以自下而上的方式迭代地解决错误。为了有效地测试每个子函数,我们提出了一种 LLM 模拟的 Python 执行器,它跟踪代码执行并跟踪重要的变量状态,以准确地定位错误。大量实验表明,MGDebugger 的性能优于现有的调试系统,在 HumanEval 中的种子生成方面准确率提高了 18.9%,在 HumanEvalFix 中的修复成功率达到了 97.6%。此外,MGDebugger 有效地修复了不同类别和难度级别的错误,证明了其鲁棒性和有效性。