A Generic Instrumentation Framework for
Collecting Dynamic Information within Eclipse

The heterogeneity and dynamism of today's software systems make it difficult to assess the performance, correctness, or security of a system outside the actual time and context in which it executes. As a result, there is an increasing interest in techniques for monitoring and dynamically analyzing the runtime behavior of an application. These techniques are usually implemented using ad-hoc solutions that result in tools that are hard to develop, maintain, and reuse. To address this problem, we developed a generic framework that enables the collection of various kinds of runtime information, such as data about the execution of various code entities and constructs. The framework lets users easily define how to process the collected information and is extensible to collect new types of information. We implemented the framework for the Java language as a set of Eclipse plug-ins. The plug-ins provide an intuitive GUI through which the functionality of the framework can be exploited.

People

Arjan Seesing
Alex Orso

Installation Instructions

Automatic installation: In Eclipse, go to Help, Software Update, Find and Install.
Select "Search for new feautures to install". On the next page make a new "Remote Site" and enter this url: "http://insectj.sourceforge.net/update/". Give the site a name (e.g., InsectJ) and press OK. Select the new site in the list and press Finish. Follow the instructions in the dialog and after your workspace has been restarted the plugin will be installed and ready to be used.
Manual installation: Coming soon.

Downloads

Links Description Size
Paper The technical report that describes the framework and the plug-ins
Documentation User manual
Extensions (comming soon) Experimental extensions to the framework (new probe inserters and additional pre-defined monitors)

If you have any questions or find any bugs, email us.

Some initial screenshots and diagrams


Wizard to create new monitor objects for collecting runtime information.


GUI for specifying which parts of a system to instrument.


Partial design of our extensible framework.

SourceForge.net Logo