JaRec: a portable record/replay environment for multi-threaded Java applications

  • Authors:
  • A. Georges;M. Christiaens;M. Ronsse;K. De Bosschere

  • Affiliations:
  • Department ELLS, Ghent University, Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium;Department ELLS, Ghent University, Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium;Department ELLS, Ghent University, Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium;Department ELLS, Ghent University, Sint-Pietersnieuwstraat 41, B-9000 Gent, Belgium

  • Venue:
  • Software—Practice & Experience
  • Year:
  • 2004

Quantified Score

Hi-index 0.00

Visualization

Abstract

This paper describes JaRec, a portable record/replay system for Java. It correctly replays multi-threaded, data-race free Java applications, by recording the order of synchronization operations, and by executing them in the same order during replay. The record/replay infrastructure is developed in Java, and does not require a modification of the Java Virtual Machine (JVM) if it provides the JVM Profiler Interface (JVMPI). If the JVM does not support JVMPI, which is used for intercepting the loaded classes, only a minor modification to the JVM is required in order to run the system. On systems with limited memory resources, JaRec can be executed in a distributed fashion. This also makes it suitable to aid debugging of multi-threaded applications on embedded systems.