How to trace methods:
Method Invocations in JVM(First tracing approach.)
In Java the current executed methods are represented as frames, that are stored on a stack. Each frame contains all information that an invocation tracer might need.
When a method is started, it's frame is put on the stack and when it is done the associated frame is removed from the stack. In this way, the current executed method is always on top of the stack.
Each thread has a private stack containing its frames.
This could be used for tracking the method invocations in Java. But the stacks and it's frames not accessible from Java itself and it would be necessary to use an extension library written in C. This is not acceptable, since it would go against the non-functional requirements and make the tracer platform dependent.