Concurrent Breakpoints

Abstract

In program debugging, reproducibility of bugs is a key requirement. Unfortunately, bugs in concurrent programs are notoriously difficult to reproduce compared to their sequential counterparts. This is because bugs due to concurrency happen under very specific thread schedules and the likelihood of taking such corner-case schedules during regular testing is very low. We propose concurrent breakpoints, a light-weight and programmatic way to make a concurrency bug reproducible. We describe a mechanism that helps to hit a concurrent breakpoint in a concurrent execution with high probability. We have implemented concurrent breakpoints as a light-weight library (containing a few hundreds of lines of code) for Java and C/C++ programs. We have used the implementation to deterministically reproduce several known non-deterministic bugs in real-world concurrent Java and C/C++ programs involving 1.6M lines of code. In our evaluation, concurrent breakpoints made these nondeterministic bugs almost 100% reproducible.

Open PDF

Document Details

Document Type
Technical Report
Publication Date
Dec 18, 2011
Accession Number
ADA559005

Entities

People

  • Chang S. Park
  • Koushik Sen

Organizations

  • University of California, Berkeley

Tags

Communities of Interest

  • C4I

DTIC Thesaurus Topics

  • Acquisition
  • Computer Science
  • Computing-Related Activities
  • Databases
  • Debugging
  • Detectors
  • Electrical Engineering
  • Engineering
  • Hard Copy
  • Instructions
  • Instrumentation
  • Language
  • Multithreading
  • Probability
  • Reproducibility
  • Statistical Sampling
  • Test And Evaluation

Fields of Study

  • Computer science
  • Engineering

Readers

  • Computational Modeling and Simulation
  • Parallel and Distributed Computing.