Published February 22, 2025 | Version v1

How Execution Features Relate to Failures

  • 1. ROR icon Helmholtz Center for Information Security

Contributors

Contact person:

  • 1. ROR icon Helmholtz Center for Information Security
  • 2. ROR icon Humboldt-Universität zu Berlin
  • 3. Center for IT-Security,Privacy, and Accountability (CISPA)
  • 4. ROR icon Saarland University

Description

Execution-Feature-Driven Debugging

Abstract

Fault localization is a fundamental aspect of debugging, aiming to identify code regions likely responsible for failures. Traditional techniques primarily correlate statement execution with failures, yet program behavior is influenced by diverse execution features—such as variable values, branch conditions, and definition-use pairs—that can provide richer diagnostic insights.

In an empirical study of 310 bugs across 20 projects, we analyzed 17 execution features and assessed their correlation with failure outcomes. Our findings suggest that fault localization benefits from a broader range of execution features: (1) Scalar pairs exhibit the strongest correlation with failures; (2) Beyond line executions, def-use pairs and functions executed are key indicators for fault localization; and (3) Combining multiple features enhances effectiveness compared to relying solely on individual features.

Building on these insights, we introduce a debugging approach to diagnose failure circumstances. The approach extracts fine-grained execution features and trains a decision tree to differentiate passing and failing runs. From this model, we derive a diagnosis that pinpoints faulty locations and explains the underlying causes of the failure. 

Our evaluation demonstrates that the generated diagnoses achieve high predictive accuracy, reinforcing their reliability. These interpretable diagnoses empower developers to efficiently debug software by providing deeper insights into failure causes.

Usage

To use the data, please find this study's repository at https://github.com/smythi93/efdd. Download the repository, unpack the data in the study/ directory, and follow the explanations in the repositories' README.

Files

study.zip

Files (9.4 GB)

Name Size
md5:f006511782292e30be81c8abf046d030
9.4 GB Preview Download

Additional details

Funding

Deutsche Forschungsgemeinschaft
Emperor (261444241) ZE 509/7-2
Deutsche Forschungsgemeinschaft
Emperor (261444241) GR 3634/4-2
European Research Council
S3 101093186

Dates

Collected
2024-02-22
Submitted
2024-02-25

Software

Repository URL
https://github.com/smythi93/efdd
Programming language
Python
Development Status
Active