JVMTI - Creating a simple agent

Hooking VMs is pretty cool, it is possible to look inside and see what exactly is happening in a Java application. Java provides an interface for hooking JavaVM, this interface is great if you want to develop a profiler, debugger or monitoring solution. There were two separate interfaces for profilers and debuggers, JVMPI (Java Virtual Machine Profiling Interface) and the JVMDI (Java Virtual Machine Debug Interface). Both of these interfaces are obsolete in the latest JDK and has been replaced with JVMTI (Java Virtual Machine Tool Interface).

Moving from C# to Java

I have been working with C# for a while now, but now a new project came written in Java and it is time to switch languages. Both languages are quite similar and in same time there are many differences. In this post I noted down few high level differences.