Abstract

Software Programmers need to monitor and measure dynamic behavior of programs. Program instrumentation tools and techniques have aided profiling, debugging, coverage analysis, and dynamic program analysis. While several open source and commercial instrumentation tools are available, that support multitude of techniques and source languages, none of the tools support a cross section of languages. Moreover, instrumentation tools lack support for systems that have been developed using multiple languages. The output produced by each tool is different, leading to problems in usage of the same by other tools to be a challenge. As an IT service provider, our organization maintains systems developed using a large number of programming languages. We develop in-house dynamic program analysis and testing tools, that use instrumentation to help with the maintenance activities. To address the availability as well as the compatibility issues, we propose a novel, generic, model based instrumentation technique. Our technique proposes addition of instrumentation code to a unified programming language model. In this paper, we present GEMS, a generic model based source code instrumentation framework. Language specific parsers in the framework instantiate the unified model. Instrumentation code is added to the model and language pretty printers unparse the model back to appropriate source language. Though the instrumentation code is ultimately added to the source code, the experimental results provided in this paper indicate relatively low execution overhead of about 3-6% over other instrumentation tools.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call