The Java Virtual Machine (JVM) has a couple of interfaces that make it possible to retrieve information about the running program and/or the virtual machine at run-time. A debugging interface has been present for a long time, and some time later a profiling interface (JVMPI) was added.
With the imminent introduction of the definitive version of J2SE 1.5 a new interface was developed that integrated all the former interfaces. This interface is called the Java Virtual Machine Tool Interface (JVMTI). The goal of this year-project is to develop an application that uses the JVMTI and enables you to:
- Selectively trace applications. (meaning: logging the sequence of method-calls in a logfile)
- Keep an eye on the current stack/heap use.
Further, there are some optional topics that, using the JVMTI interface, can be tackled, e.g. thread analysis, code coverage (is there code that is never executed?).URL: http://yajp.sourceforge.net/