Capture and replay

Revision as of 03:37, 17 April 2007 by Sieberst (Talk | contribs)

This is the project page for capture & replay debugging

Overview

Capture/Replay should be implemented according to [1]:

  • After defining the set of observed classes, an instrumented executable should be generated, that records all interactions between observed and unobserved objects.
  • For the replay phase, unobserved classes are replaced with stubs that replay their with the observed classes based on the recorded interactions. Thus it should be possible to replay a run for the set of observed classes.
  • Capture/Replay should at least be available for the Workbench (Frozen) C Code. The implementation for melted code is optional. It can't be avoided that parts of the work will depend on the compiler backend that is used. These dependencies should be isolated into separate classes and kept as small as possible.
  • The overhead of capture/replay should be measured to see if it could be used in practice.

Plan

The project will be divided into several iterations to be able to work with both capture and replay as fast as possible.

iteration 0

  • Basic Capture
  • Basic Replay

iteration 1

  • Fields
  • Expanded Types
  • Contracts

iteration 2

  • Polymorphism
  • Genericity
  • Onces

iteration 3

  • Agents
  • Tuples
  • Externals

Schedule 2007-03-27.png

References

[1] Shrinivas Joshi and Alessandro Orso: Capture and Replay of User Executions to Improve Software Quality


Common build errors

Here's a draft of some lessons learned while building eiffel studio:

  • gcc: $ISE_EIFFEL/precomp/spec/linux-x86/EIFGENs/base/W_code/preobj.o: No such file or directory --> building of precompiles not successfully finished. Precompile $ISE_EIFFEL.