hotspot/src/share/vm/runtime/vframeArray.cpp
changeset 4896 88b4193b82b0
parent 3603 2d6d87c8705f
child 5046 27e801a857cb
equal deleted inserted replaced
4895:6102d1a32ce8 4896:88b4193b82b0
     1 /*
     1 /*
     2  * Copyright 1997-2009 Sun Microsystems, Inc.  All Rights Reserved.
     2  * Copyright 1997-2010 Sun Microsystems, Inc.  All Rights Reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
   184                               "shouldn't get exception during monitorenter");)
   184                               "shouldn't get exception during monitorenter");)
   185 
   185 
   186   int popframe_preserved_args_size_in_bytes = 0;
   186   int popframe_preserved_args_size_in_bytes = 0;
   187   int popframe_preserved_args_size_in_words = 0;
   187   int popframe_preserved_args_size_in_words = 0;
   188   if (is_top_frame) {
   188   if (is_top_frame) {
   189   JvmtiThreadState *state = thread->jvmti_thread_state();
   189     JvmtiThreadState *state = thread->jvmti_thread_state();
   190     if (JvmtiExport::can_pop_frame() &&
   190     if (JvmtiExport::can_pop_frame() &&
   191         (thread->has_pending_popframe() || thread->popframe_forcing_deopt_reexecution())) {
   191         (thread->has_pending_popframe() || thread->popframe_forcing_deopt_reexecution())) {
   192       if (thread->has_pending_popframe()) {
   192       if (thread->has_pending_popframe()) {
   193         // Pop top frame after deoptimization
   193         // Pop top frame after deoptimization
   194 #ifndef CC_INTERP
   194 #ifndef CC_INTERP
   379     tty->print_cr("[%d Interpreted Frame]", ++unpack_counter);
   379     tty->print_cr("[%d Interpreted Frame]", ++unpack_counter);
   380     iframe()->print_on(tty);
   380     iframe()->print_on(tty);
   381     RegisterMap map(thread);
   381     RegisterMap map(thread);
   382     vframe* f = vframe::new_vframe(iframe(), &map, thread);
   382     vframe* f = vframe::new_vframe(iframe(), &map, thread);
   383     f->print();
   383     f->print();
   384     iframe()->interpreter_frame_print_on(tty);
       
   385 
   384 
   386     tty->print_cr("locals size     %d", locals()->size());
   385     tty->print_cr("locals size     %d", locals()->size());
   387     tty->print_cr("expression size %d", expressions()->size());
   386     tty->print_cr("expression size %d", expressions()->size());
   388 
   387 
   389     method()->print_value();
   388     method()->print_value();
   580     element(index)->print(st);
   579     element(index)->print(st);
   581   }
   580   }
   582 }
   581 }
   583 
   582 
   584 void vframeArrayElement::print(outputStream* st) {
   583 void vframeArrayElement::print(outputStream* st) {
   585   st->print_cr(" - interpreter_frame -> sp: ", INTPTR_FORMAT, iframe()->sp());
   584   st->print_cr(" - interpreter_frame -> sp: " INTPTR_FORMAT, iframe()->sp());
   586 }
   585 }
   587 
   586 
   588 void vframeArray::print_value_on(outputStream* st) const {
   587 void vframeArray::print_value_on(outputStream* st) const {
   589   st->print_cr("vframeArray [%d] ", frames());
   588   st->print_cr("vframeArray [%d] ", frames());
   590 }
   589 }