changeset 2488:dfa8e5680ab9

Debug code
author Gary Benson <gbenson@redhat.com>
date Mon, 28 Mar 2011 13:16:53 +0100
parents 17560fb7d842
children 0d3482ad0868
files src/cpu/zero/vm/cppInterpreter_zero.cpp
diffstat 1 files changed, 23 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/cpu/zero/vm/cppInterpreter_zero.cpp	Mon Mar 28 11:43:24 2011 +0100
+++ b/src/cpu/zero/vm/cppInterpreter_zero.cpp	Mon Mar 28 13:16:53 2011 +0100
@@ -726,6 +726,25 @@
 
 void CppInterpreter::process_method_handle(oop method_handle, TRAPS) {
   JavaThread *thread = (JavaThread *) THREAD;
+  bool interesting = false;
+  {
+    ZeroFrame *zf = thread->top_zero_frame();
+    if (zf != NULL) {
+      zf = zf->next();
+    }
+    if (zf != NULL && zf->is_interpreter_frame()) {
+      InterpreterFrame *frame = zf->as_interpreter_frame();
+      interpreterState istate = frame->interpreter_state();
+      methodOop method = istate->method();
+
+      ResourceMark *rm;
+      if (!strcmp(method->name_and_sig_as_C_string(),
+                  "test.java.dyn.MethodHandlesTest.testPermute"
+                  "Arguments([Ljava/lang/Object;[Ljava/lang/Class;[I)V")) {
+        interesting = true;
+      }
+    }
+  }
   ZeroStack *stack = thread->zero_stack();
   intptr_t *vmslots = stack->sp();
 
@@ -738,6 +757,10 @@
   MethodHandles::EntryKind entry_kind =
     (MethodHandles::EntryKind) (((intptr_t) entry) & 0xffffffff);
 
+  if (interesting) {
+    tty->print_cr("processing %s", MethodHandles::entry_name(entry_kind));
+  }
+
   methodOop method = NULL;
   switch (entry_kind) {
   case MethodHandles::_invokestatic_mh: