Record-Replay Debugging for Concurrent SCOOP Programs

The authors report on the implementation of a record-replay tool for programs written in SCOOP, an object-oriented programming model for concurrency. The tool enables developers to re-produce the non-deterministic execution of a concurrent program, a necessary prerequisite for debugging and testing. The implementation is based on Choi and Srinivasan's approach of using logical thread schedules, which represent classes of physical schedules that are equivalent with respect to memory accesses. Avoiding concurrency-specific errors such as data races and deadlocks is still the responsibility of developers in most languages that provide synchronization through concurrency libraries.