The hardest step in solving software bugs in a parallel programming environment centers on working backward from a software failure to the original program error. Conventional debugging techniques allow users to control program execution only in the forward direction, forcing developers to apply time-consuming methods to attempt to identify the problem.

The paper highlights:

  • Challenges of race conditions and other difficult bugs.
  • The limitations of the classical interactive debugger paradigm.
  • A new paradigm for debugging based upon recording program execution.