一句话:提出 IDE 内的智能调试助手 DIAD,用 LLM 整合多源调试信息,在断点处自动检测、解释并尝试修复问题。
论文针对 IDE 调试中信息分散、开发者难以快速理解程序行为的问题,提出了动态智能辅助调试器 DIAD。DIAD 以 LLM 为核心,把多种对调试有用的数据源整合起来,包括源码分析、调试器询问、可查询的流分析、带完整轨迹的模拟部分执行以及轨迹分析,从而为开发者提供更准确、完整的调试信息。当开发者遇到断点时,DIAD 会自动运行,判断是否存在潜在问题的症状;若发现症状,则借助上述数据源解释问题成因,并在可能时自动修复。系统还提供用户界面,允许开发者提出调试问题或对回答进行追问。作者对仍处于实验阶段的系统进行了初步评估,并计划用该评估驱动后续工作;系统及其各组件的源码已在 GitHub 公开,并附有工具演示视频。
We introduce our dynamic intelligent assistive debugger, DIAD, as a smart assistant for debugging within an IDE. DIAD uses an LLM to integrate a variety of data sources useful for debugging, including source analysis, debugger interrogation, queryable flow analysis, simulated partial execution with full traces, and trace analysis. These additional sources let it provide more accurate and complete debugging information to the developer in a timely fashion. DIAD runs automatically whenever the developer encounters a breakpoint, detecting if there is a symptom of a potential problem, and if one is found, tries to explain and, if possible, fix the underlying problem using the various sources. DIAD includes a user interface that lets the developer ask debugging questions or followup on the responses. We have done a preliminary evaluation of the still experimental system and plan to use it to drive future work. The source code for the system and its various components is available on GitHub. A video demonstrating the tool and how it is used is available at https://youtu.be/fLiStsz4PJ8.