Table of Contents
Fetching ...

A Deep Dive into Large Language Models for Automated Bug Localization and Repair

Soneya Binta Hossain, Nan Jiang, Qiang Zhou, Xiaopeng Li, Wen-Hao Chiang, Yingjun Lyu, Hoan Nguyen, Omer Tripp

TL;DR

This paper advances automated program repair by decoupling bug localization and bug fixing and by localizing bugs at the token level rather than at lines. The core mechanism, Toggle, uses a token-granulated localization model (_CodeT5_ encoder) paired with decoder-based LLMs for fixing, augmented by an adjustment module to reconcile tokenizer differences. Through four carefully crafted prompts and extensive experiments across CodeXGLUE benchmarks and Defects4J, the work demonstrates that token-level localization, prompt design, and contextual information substantially boost patch accuracy and generalization, achieving SOTA performance on code refinement tasks. The framework offers practical benefits for real-world APR by reducing redundant generation, enabling flexible context usage, and providing robust performance across diverse datasets and model scales.

Abstract

Large language models (LLMs) have shown impressive effectiveness in various software engineering tasks, including automated program repair (APR). In this study, we take a deep dive into automated bug fixing utilizing LLMs. In contrast to many deep learning-based APR methods that assume known bug locations, rely on line-level localization tools, or address bug prediction and fixing in one step, our approach uniquely employs LLMs to predict bug location at the token level and subsequently utilizes them for bug fixing. This methodological separation of bug localization and fixing using different LLMs enables effective integration of diverse contextual information and improved incorporation of inductive biases. We introduce Toggle: Token-Granulated Bug Localization and Repair, a comprehensive program repair framework that integrates a bug localization model, an adjustment unit, and a bug-fixing model. Toggle takes a buggy function as input and generates a complete corrected function. We investigate various styles of prompting to the bug fixing model to identify the most effective prompts that better utilize the inductive bias and significantly outperform others. Toggle achieves the new state-of-the-art (SOTA) performance on the CodeXGLUE code refinement benchmark, and exhibits better and comparable performance on several other widely-used APR datasets, including Defects4J.

A Deep Dive into Large Language Models for Automated Bug Localization and Repair

TL;DR

This paper advances automated program repair by decoupling bug localization and bug fixing and by localizing bugs at the token level rather than at lines. The core mechanism, Toggle, uses a token-granulated localization model (_CodeT5_ encoder) paired with decoder-based LLMs for fixing, augmented by an adjustment module to reconcile tokenizer differences. Through four carefully crafted prompts and extensive experiments across CodeXGLUE benchmarks and Defects4J, the work demonstrates that token-level localization, prompt design, and contextual information substantially boost patch accuracy and generalization, achieving SOTA performance on code refinement tasks. The framework offers practical benefits for real-world APR by reducing redundant generation, enabling flexible context usage, and providing robust performance across diverse datasets and model scales.

Abstract

Large language models (LLMs) have shown impressive effectiveness in various software engineering tasks, including automated program repair (APR). In this study, we take a deep dive into automated bug fixing utilizing LLMs. In contrast to many deep learning-based APR methods that assume known bug locations, rely on line-level localization tools, or address bug prediction and fixing in one step, our approach uniquely employs LLMs to predict bug location at the token level and subsequently utilizes them for bug fixing. This methodological separation of bug localization and fixing using different LLMs enables effective integration of diverse contextual information and improved incorporation of inductive biases. We introduce Toggle: Token-Granulated Bug Localization and Repair, a comprehensive program repair framework that integrates a bug localization model, an adjustment unit, and a bug-fixing model. Toggle takes a buggy function as input and generates a complete corrected function. We investigate various styles of prompting to the bug fixing model to identify the most effective prompts that better utilize the inductive bias and significantly outperform others. Toggle achieves the new state-of-the-art (SOTA) performance on the CodeXGLUE code refinement benchmark, and exhibits better and comparable performance on several other widely-used APR datasets, including Defects4J.
Paper Structure (37 sections, 2 equations, 7 figures, 8 tables)

This paper contains 37 sections, 2 equations, 7 figures, 8 tables.

Figures (7)

  • Figure 1: Example of buggy and fix code that share large non-buggy prefix and suffix
  • Figure 2: Discrepancy in code tokenization between the bug localization and fixing models.
  • Figure 3: Overview of Toggle and experimental designs.
  • Figure 4: (a) example for buggy and fixed code , (b) architecture of the bug localization model
  • Figure 5: Four different prompts investigated. Blue tokens are non-buggy shared prefix. Red tokens are buggy code. Brown tokens are non-buggy shared suffix. Green tokens are fixed code.
  • ...and 2 more figures