ChatDBG: An AI-Powered Debugging Assistant
Kyla Levin Nicolas van Kempen Emery D. Berger Stephen N. Freund
This paper presents ChatDBG, the first AI-powered debugging assistant.
ChatDBG integrates large language models (LLMs) to significantly enhance the
capabilities and user-friendliness of conventional debuggers. ChatDBG lets
programmers engage in a collaborative dialogue with the debugger, allowing them
to pose complex questions about program state, perform root cause analysis for
crashes or assertion failures, and explore open-ended queries like "why is x
null?". To handle these queries, ChatDBG grants the LLM autonomy to take the
wheel and drive debugging by issuing commands to navigate through stacks and
inspect program state; it then reports its findings and yields back control to
the programmer. Our ChatDBG prototype integrates with standard debuggers
including LLDB, GDB, and WinDBG for native code and Pdb for Python. Our
evaluation across a diverse set of code, including C/C++ code with known bugs
and a suite of Python code including standalone scripts and Jupyter notebooks,
demonstrates that ChatDBG can successfully analyze root causes, explain bugs,
and generate accurate fixes for a wide range of real-world errors. For the
Python programs, a single query led to an actionable bug fix 67% of the time;
one additional follow-up query increased the success rate to 85%. ChatDBG has
seen rapid uptake; it has already been downloaded nearly 30,000 times.