OpenJdk interpreter
Tim Bell
Tim.Bell at Sun.COM
Wed Jul 2 15:05:46 PDT 2008
Nagy1981 wrote:
> Hi,
> I am trying to modify the hotspot interpreter to collect some profile data.
> The main thing I want to do is build a call-tree. I want to add a hook to
> the interpreter whenever an invoke_* bytecode operation is about to execute
> such that my call-tree gets updated. Can you please guide me to the part of
> the code where control is passed from the interpreter to the assembly code
> corresponding to a bytecode operation. All I can find is parts where the
> assembly code get generated, but I can't figure out where it is executed.
Have you looked at the javadoc for the JVMTI_EVENT_METHOD_ENTRY event?
http://java.sun.com/javase/6/docs/platform/jvmti/jvmti.html#MethodEntry
Does this supply the functionality you need? It would be easier to write a JVM TI agent [1] to
collect this information than it would be to modify the interpreter.
If you still want to modify the JVM code, read over jvmtiExport.cpp. Look for
void JvmtiExport::post_method_entry()
If you still want to modify the JVM, look over the code base for calls to post_method_entry()
and that should give you an idea where to start.
Hope this helps - Tim Bell
[1] The JVM Tool Interface (JVM TI): How VM Agents Work
http://java.sun.com/developer/technicalArticles/J2SE/jvm_ti/
More information about the hotspot-dev
mailing list