摘要
arXiv:2403.16354v4 宣告类型: replace-cross
摘要:调试是程序员的一项关键但具有挑战性的任务。本文提出了一种名为 ChatDBG 的人工智能辅助调试助手。ChatDBG 通过集成大型语言模型 (LLMs),显著增强了传统调试器的能力和用户友好性。ChatDBG 允许程序员与调试器进行协作对话,让他们能够提出关于程序状态的复杂问题,进行崩溃或断言失败的根本原因分析,以及探索开放式查询,例如“为什么 x 为空?”为了处理这些查询,ChatDBG 赋予了 LLM 自主性,使其能够“接管”:它可以作为独立代理,能够查询和控制调试器以导航堆栈并检查程序状态。然后它报告其发现,并将控制权交还给程序员。通过利用嵌入在 LLM 中的现实世界知识,ChatDBG 可以诊断仅通过领域特定推理使用才能识别的问题。我们的 ChatDBG 原型与标准调试器(包括 LLDB、GDB 用于原生代码以及 Pdb 用于 Python 代码)集成。针对不同代码的综合评估,包括包含已知错误的 C/C++ 代码和一系列 Python 代码,包括独立脚本和 Jupyter 笔记本,表明 ChatDBG 可以成功分析根本原因,解释错误,并为广泛的实际错误生成准确的修复方案。对于 Python 程序,单次查询有 67% 的时间导致可操作的错误修复;一个额外的后续查询将成功率提高到 85%。ChatDBG 已经广泛采用;迄今为止,它已经下载超过 75,000 次。