Software Engineering Seminar (SS 2015)

Description Dynamic analysis of software systems requires the instrumentation of application programs with functionality to measure events of interest that occur during program execution, e.g., method calls, runtime exceptions, and variable accesses. For modern programming languages that are executed by virtual machines (Java, .NET, etc.), instrumentation techniques based on bytecode manipulation are available. Bytecode manipulation enables program instrumentation without the need to modify the source code. Modern aspect-oriented programming approaches for these languages are based on bytecode manipulation. This seminar paper should introduce program instrumentation in general, but then focus on approaches based on bytecode instrumentation for the Java virtual machine. The provided references are to be considered a starting point and it is expected to extend the literature search and present a coherent view on the current state of the art in this area. References [1] Asm java bytecode manipulation and analysis. Pin: Building customized program analysis tools with dynamic instrumenta-tion. A domain-specific language for bytecode instrumentation.