- 简介本文介绍了ChatDBG,它是第一个由人工智能驱动的调试助手。ChatDBG集成了大型语言模型(LLM),显著提高了传统调试器的功能和用户友好性。ChatDBG允许程序员与调试器进行协作对话,让他们提出关于程序状态的复杂问题,为崩溃或断言失败进行根本原因分析,并探索开放式的查询,如“为什么x为空?”。为了处理这些查询,ChatDBG授权LLM独立驾驶调试,通过发出命令来导航堆栈和检查程序状态;然后报告其发现并将控制权交还给程序员。我们的ChatDBG原型与标准调试器集成,包括LLDB、GDB和WinDBG用于本地代码,以及Pdb用于Python。我们在各种代码中进行了评估,包括已知缺陷的C/C++代码和一套Python代码,包括独立脚本和Jupyter笔记本,证明了ChatDBG可以成功分析根本原因,解释错误,并为各种实际错误生成准确的修复程序。对于Python程序,单个查询有67%的成功率导致可行的错误修复;一个额外的后续查询将成功率提高到85%。ChatDBG已经迅速得到了广泛的应用;它已经被下载了近30,000次。
- 图表
- 解决问题ChatDBG试图解决传统调试器的局限性,提供一种更加智能、用户友好的调试方式。论文的假设是,通过与大型语言模型的协作,可以有效地解决程序调试中的复杂问题。
- 关键思路ChatDBG的关键思路是将大型语言模型与传统调试器集成,让程序员可以通过自然语言与调试器进行交互,从而更加高效地进行调试。大型语言模型可以自主地导航调用栈、检查程序状态,并生成相应的调试指令,从而帮助程序员快速定位和解决问题。
- 其它亮点论文通过实验验证了ChatDBG在C/C++和Python程序的调试中的有效性和实用性。实验结果表明,ChatDBG可以成功地分析问题的根本原因、解释错误,并生成准确的修复方案。在Python程序中,单个查询就能够成功修复错误的概率高达67%,进行一次追加查询后,成功率可提高至85%。此外,论文还提供了开源的ChatDBG原型实现,可以与多种标准调试器集成。
- 在程序调试领域,已经有一些相关的研究工作。例如,基于符号执行的调试方法、基于数据流分析的调试方法、基于可视化的调试工具等。但是,ChatDBG与这些方法不同,它通过集成大型语言模型,提供了一种全新的调试方式。
沙发等你来抢
去评论
评论
沙发等你来抢