  Software bugs require developers to exert significant effort to identify and
resolve them, often consuming about one-third of their time. Bug localization,
the process of pinpointing the exact source code files that need modification,
is crucial in reducing this effort. Existing bug localization tools, typically
reliant on deep learning techniques, face limitations in cross-project
applicability and effectiveness in multi-language environments. Recent
advancements with Large Language Models (LLMs) offer detailed representations
for bug localization. However, they encounter challenges with limited context
windows and mapping accuracy. To address these issues, we propose BLAZE, an
approach that employs dynamic chunking and hard example learning. First, BLAZE
dynamically segments source code to minimize continuity loss. Then, BLAZE
fine-tunes a GPT-based model using challenging bug cases, in order to enhance
cross-project and cross-language bug localization. To support the capability of
BLAZE, we create the BEETLEBOX dataset, which comprises 26,321 bugs from 29
large and thriving open-source projects across five different programming
languages (Java, C++, Python, Go, and JavaScript). Our evaluations of BLAZE on
three benchmark datasets BEETLEBOX, SWE-Bench, and Ye et al. demonstrate
substantial improvements compared to six state-of-the-art baselines.
Specifically, BLAZE achieves up to an increase of 120% in Top 1 accuracy, 144%
in Mean Average Precision (MAP), and 100% in Mean Reciprocal Rank (MRR). An
extensive ablation study confirms the contributions of our pipeline components
to the overall performance enhancement.
