¿Cómo instrumentar métodos java?

Quiero escribir un simple agente java que pueda imprimir el nombre de un método llamado por el programa java instrumentado.

Por ejemplo, mi programa java que quiero instrumentar es:

public class TestInstr {

public static void sayHello() {
    System.out.println("Hello !");
}

public static void main(String args[]) {
    sayHello();
    sayHello();
    sayHello();
 }

}

Me gustaría mostrar algo como esto:

method sayHello has been called
Hello !
method sayHello has been called
Hello !
method sayHello has been called
Hello !

¡Gracias por tu ayuda!

Respuestas a la pregunta(5)

Su respuesta a la pregunta