DEBUGGING DISTRIBUTED COMPUTATIONS IN A NESTED ATOMIC ACTION SYSTEM

  • Authors:
  • S. Y. Chiu

  • Affiliations:
  • -

  • Venue:
  • DEBUGGING DISTRIBUTED COMPUTATIONS IN A NESTED ATOMIC ACTION SYSTEM
  • Year:
  • 1984

Quantified Score

Hi-index 0.00

Visualization

Abstract

Concurrent and distributed programs are hard to debug. In this thesis, we argue that structuring activities as nested atomic actions can make debugging such programs much like debugging traditional sequential programs. To support the argument, we present a method for debugging computations in the Argus language and system. Our method is applicable to other action systems since it depends only on the atomicity properties of actions. To debug a computation in our method, the user inspects a serial execution that is equivalent to the original computation. The debugging process involves two phases. In the first phase, the user examines pre- and post- states of actions to isolate the action that exposes the bug. In the second phase, the debugging system re-executes code to reproduce the details of the culprit action. The user can repeat this re-execution and can use standard "break-and-examine" tools on it to isolate the bug. Our debugging system supports the method by saving a partial history when an action runs. This history consists mainly of recovery versions of objects. The system also timestamps the termination of actions so it can determine from the saved versions the values of objects in an action''s pre- and post- states. The debugging system itself uses pre-states to repeat actions. Our work presents the first detailed design that uses recovery versions and timestamps for debugging.