Runtime Verification Driven Debugging of Replayed Errors

Bugs in embedded software often depend on inputs of the target environment which are often di cult to generate for testing. Our approach traces external inputs to the software during operation until a failure occurs. The execution trace is replayed in the laboratory. During replay automated verification techniques are applied in order to check whether the software violates the requirements of the specification. A detected violation can give the developer an indication pointing to the cause of the failure in the source code. The developer does not have to step with the debugger over the whole replayed execution in order to find the reason for the failure. Thus, the analysis process is accelerated.