🤖 AI Summary
This work addresses the challenges of localizing concurrency bugs, which are exacerbated by incomplete textual bug reports, ambiguous references, and intricate cross-thread interactions, leading to unstable and opaque reasoning in existing large language model (LLM)-based approaches. To overcome these limitations, the authors propose ConFL, a novel framework that constructs a code-derived concurrency knowledge base and introduces an interaction-level domain-specific language (DSL) to explicitly model shared-resource interactions among threads. ConFL employs hierarchical retrieval to guide the LLM from component-level to interaction-level context, enabling structured and interpretable defect localization. Experimental results on eight large-scale Java projects demonstrate that ConFL substantially outperforms state-of-the-art information retrieval and LLM baselines (MRR=0.503, MAP=0.486) and exhibits robustness against noisy reports, previously unseen bugs, and varying LLM backbones.
📝 Abstract
Localizing concurrent bugs from bug reports alone is challenging due to incomplete information, misleading program-entity mentions, and complex cross-thread interactions, causing existing LLM-based approaches to suffer from unstable reasoning and limited explainability. We propose ConFL, an explainable concurrent fault localization framework that augments LLM reasoning with structured concurrency knowledge. ConFL constructs a Concurrent Knowledge Base (CKB) from source code and performs LLM-guided hierarchical retrieval to progressively narrow the search space from components to interaction-level concurrency contexts. An interaction-level DSL explicitly encodes cross-thread interactions over shared resources, enabling focused reasoning without traversing deep call chains. Experiments on real-world concurrent bugs from eight large-scale Java projects show that ConFL significantly outperforms state-of-the-art IR-based and LLM-based baselines, achieving an MRR of 0.503 and a MAP of 0.486, while remaining robust to noisy bug reports, unseen bugs, and different LLM backbones.