Deterministic replay debugging of embedded real-time systems using standard components

Författare: Sundmark Daniel; Mälardalens Högskola; []

Nyckelord: ;

Sammanfattning: Men and women make mistakes. They always have and they alwayswill. Naturally, software engineers are no exception to thisrule. When software engineers make their mistakes, these manifest inthe form of buggy software. Luckily, men and women often strive tocorrect the mistakes they make. In software engineering, this processis called debugging.In simple sequential software, debugging is fairly easy. However, inthe realm of embedded real-time software, debugging is madesignificantly harder by factors such as dependency of an externalcontext, pseudoparallelism or true parallelism, and other real-timeproperties. These factors lead to problems with execution behaviorreproducibility. When a failure is discovered, we need to be able toreproduce this failure in order to examine what went wrong. If theerroneous behavior cannot be reproduced, we will not be able toexamine the process leading to the failure.Previous work has proposed the use of execution replay debugging inorder to solve this problem. Execution replay is a general term for aset of methods to record system behavior during execution and to usethese recordings in order to reproduce this behavior during debuggingsessions. This way, we may achieve a reproducable execution behaviorfor non-deterministic systems. Historically, many replay methods havebeen highly platform-dependent, craving specialized hardware,operating system or compilers.In this thesis, we describe a replay method, called DeterministicReplay, able to run on top of standard components. We also describethe Time Machine, which is the implementation of the DeterministicReplay method. Further, we give an in-depth description of the methodfor pinpointing interrupts used by the Time Machine. In addition, wepresent results from two case studies where the Deterministic Replaymethod was incorporated into two full-scale industrial real-timesystems. These results show that our method of debuggingmulti-tasking real-time systems not only is applicable in industrialapplications, but also that it can be introduced with little effortand small costs regarding application performance.

  Denna avhandling är EVENTUELLT nedladdningsbar som PDF. Kolla denna länk för att se om den går att ladda ner.