Maintaining the causal thread of execution in distributed and multilanguage software
Schutte, Rik (2011)
Runtime verification is a technique used to check the execution trace of a program against
specified properties. During the execution of a program, the changes in the state of the program
are observed and are verified against the specified properties of the program.
We want to apply runtime verification to check sequences of events, which are distributed (they
are generated in separate processes, which communicate with each other) and span multiple
programming languages. There are currently two E-Chaser versions, which supply separate
solutions for multiple language and distributed software. In this thesis we combine these two
versions to create a new solution.
The solution is given in two parts. The first part of the solution is about the call graph approach,
in which we try to generate call graphs of multiple language software. From a call graph we try to
deduce structural information. Due to the problems related to combining call graph of different
programming languages, a different approach was taken. The second part describes a new
verification system design which extends the previous E-Chaser versions.
We have created two tools that adapt the source code of a program written in C and Java. We
evaluate these tools against testing applications. The thesis is concluded with ideas for optimizing
the solution.
scriptie_Rik_Schutte.pdf