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