< prev index next >

src/hotspot/share/runtime/thread.cpp

Print this page




  31 #include "classfile/vmSymbols.hpp"
  32 #include "code/codeCache.hpp"
  33 #include "code/scopeDesc.hpp"
  34 #include "compiler/compileBroker.hpp"
  35 #include "compiler/compileTask.hpp"
  36 #include "gc/shared/gcId.hpp"
  37 #include "gc/shared/gcLocker.inline.hpp"
  38 #include "gc/shared/workgroup.hpp"
  39 #include "interpreter/interpreter.hpp"
  40 #include "interpreter/linkResolver.hpp"
  41 #include "interpreter/oopMapCache.hpp"
  42 #include "jvmtifiles/jvmtiEnv.hpp"
  43 #include "logging/log.hpp"
  44 #include "logging/logConfiguration.hpp"
  45 #include "logging/logStream.hpp"
  46 #include "memory/allocation.inline.hpp"
  47 #include "memory/metaspaceShared.hpp"
  48 #include "memory/oopFactory.hpp"
  49 #include "memory/resourceArea.hpp"
  50 #include "memory/universe.hpp"

  51 #include "oops/instanceKlass.hpp"
  52 #include "oops/objArrayOop.hpp"
  53 #include "oops/oop.inline.hpp"
  54 #include "oops/symbol.hpp"
  55 #include "oops/typeArrayOop.inline.hpp"
  56 #include "oops/verifyOopClosure.hpp"
  57 #include "prims/jvm_misc.hpp"
  58 #include "prims/jvmtiExport.hpp"
  59 #include "prims/jvmtiThreadState.hpp"
  60 #include "prims/privilegedStack.hpp"
  61 #include "runtime/arguments.hpp"
  62 #include "runtime/atomic.hpp"
  63 #include "runtime/biasedLocking.hpp"
  64 #include "runtime/commandLineFlagConstraintList.hpp"
  65 #include "runtime/commandLineFlagWriteableList.hpp"
  66 #include "runtime/commandLineFlagRangeList.hpp"
  67 #include "runtime/deoptimization.hpp"
  68 #include "runtime/frame.inline.hpp"
  69 #include "runtime/globals.hpp"
  70 #include "runtime/handshake.hpp"


3202   FREE_C_HEAP_ARRAY(char, (char*) _popframe_preserved_args);
3203   _popframe_preserved_args = NULL;
3204   _popframe_preserved_args_size = 0;
3205 }
3206 
3207 #ifndef PRODUCT
3208 
3209 void JavaThread::trace_frames() {
3210   tty->print_cr("[Describe stack]");
3211   int frame_no = 1;
3212   for (StackFrameStream fst(this); !fst.is_done(); fst.next()) {
3213     tty->print("  %d. ", frame_no++);
3214     fst.current()->print_value_on(tty, this);
3215     tty->cr();
3216   }
3217 }
3218 
3219 class PrintAndVerifyOopClosure: public OopClosure {
3220  protected:
3221   template <class T> inline void do_oop_work(T* p) {
3222     oop obj = oopDesc::load_decode_heap_oop(p);
3223     if (obj == NULL) return;
3224     tty->print(INTPTR_FORMAT ": ", p2i(p));
3225     if (oopDesc::is_oop_or_null(obj)) {
3226       if (obj->is_objArray()) {
3227         tty->print_cr("valid objArray: " INTPTR_FORMAT, p2i(obj));
3228       } else {
3229         obj->print();
3230       }
3231     } else {
3232       tty->print_cr("invalid oop: " INTPTR_FORMAT, p2i(obj));
3233     }
3234     tty->cr();
3235   }
3236  public:
3237   virtual void do_oop(oop* p) { do_oop_work(p); }
3238   virtual void do_oop(narrowOop* p)  { do_oop_work(p); }
3239 };
3240 
3241 
3242 static void oops_print(frame* f, const RegisterMap *map) {




  31 #include "classfile/vmSymbols.hpp"
  32 #include "code/codeCache.hpp"
  33 #include "code/scopeDesc.hpp"
  34 #include "compiler/compileBroker.hpp"
  35 #include "compiler/compileTask.hpp"
  36 #include "gc/shared/gcId.hpp"
  37 #include "gc/shared/gcLocker.inline.hpp"
  38 #include "gc/shared/workgroup.hpp"
  39 #include "interpreter/interpreter.hpp"
  40 #include "interpreter/linkResolver.hpp"
  41 #include "interpreter/oopMapCache.hpp"
  42 #include "jvmtifiles/jvmtiEnv.hpp"
  43 #include "logging/log.hpp"
  44 #include "logging/logConfiguration.hpp"
  45 #include "logging/logStream.hpp"
  46 #include "memory/allocation.inline.hpp"
  47 #include "memory/metaspaceShared.hpp"
  48 #include "memory/oopFactory.hpp"
  49 #include "memory/resourceArea.hpp"
  50 #include "memory/universe.hpp"
  51 #include "oops/access.inline.hpp"
  52 #include "oops/instanceKlass.hpp"
  53 #include "oops/objArrayOop.hpp"
  54 #include "oops/oop.inline.hpp"
  55 #include "oops/symbol.hpp"
  56 #include "oops/typeArrayOop.inline.hpp"
  57 #include "oops/verifyOopClosure.hpp"
  58 #include "prims/jvm_misc.hpp"
  59 #include "prims/jvmtiExport.hpp"
  60 #include "prims/jvmtiThreadState.hpp"
  61 #include "prims/privilegedStack.hpp"
  62 #include "runtime/arguments.hpp"
  63 #include "runtime/atomic.hpp"
  64 #include "runtime/biasedLocking.hpp"
  65 #include "runtime/commandLineFlagConstraintList.hpp"
  66 #include "runtime/commandLineFlagWriteableList.hpp"
  67 #include "runtime/commandLineFlagRangeList.hpp"
  68 #include "runtime/deoptimization.hpp"
  69 #include "runtime/frame.inline.hpp"
  70 #include "runtime/globals.hpp"
  71 #include "runtime/handshake.hpp"


3203   FREE_C_HEAP_ARRAY(char, (char*) _popframe_preserved_args);
3204   _popframe_preserved_args = NULL;
3205   _popframe_preserved_args_size = 0;
3206 }
3207 
3208 #ifndef PRODUCT
3209 
3210 void JavaThread::trace_frames() {
3211   tty->print_cr("[Describe stack]");
3212   int frame_no = 1;
3213   for (StackFrameStream fst(this); !fst.is_done(); fst.next()) {
3214     tty->print("  %d. ", frame_no++);
3215     fst.current()->print_value_on(tty, this);
3216     tty->cr();
3217   }
3218 }
3219 
3220 class PrintAndVerifyOopClosure: public OopClosure {
3221  protected:
3222   template <class T> inline void do_oop_work(T* p) {
3223     oop obj = RawAccess<>::oop_load(p);
3224     if (obj == NULL) return;
3225     tty->print(INTPTR_FORMAT ": ", p2i(p));
3226     if (oopDesc::is_oop_or_null(obj)) {
3227       if (obj->is_objArray()) {
3228         tty->print_cr("valid objArray: " INTPTR_FORMAT, p2i(obj));
3229       } else {
3230         obj->print();
3231       }
3232     } else {
3233       tty->print_cr("invalid oop: " INTPTR_FORMAT, p2i(obj));
3234     }
3235     tty->cr();
3236   }
3237  public:
3238   virtual void do_oop(oop* p) { do_oop_work(p); }
3239   virtual void do_oop(narrowOop* p)  { do_oop_work(p); }
3240 };
3241 
3242 
3243 static void oops_print(frame* f, const RegisterMap *map) {


< prev index next >