Run-time behavior is recorded using traces that are generated at run-time.
A set of valid system behaviors is maintained. A recorded behavior can be
added to the set of valid system behaviors if the run-time operation is
completed successfully. Otherwise, the recorded behavior can be compared
with members of the set of valid behaviors to determine differences. Such
differences can be analysed to determine the cause of run-time errors.