< prev index next >

src/hotspot/share/prims/stackwalk.hpp

Print this page




  63   bool cleanup_magic_on_exit(objArrayHandle frames_array);
  64 
  65   bool is_valid_in(Thread* thread, objArrayHandle frames_array) {
  66     return (_thread == thread && check_magic(frames_array));
  67   }
  68 
  69   jlong address_value() {
  70     return (jlong) castable_address(this);
  71   }
  72 
  73   static BaseFrameStream* from_current(JavaThread* thread, jlong magic, objArrayHandle frames_array);
  74 };
  75 
  76 class JavaFrameStream : public BaseFrameStream {
  77 private:
  78   vframeStream          _vfst;
  79   bool                  _need_method_info;
  80 public:
  81   JavaFrameStream(JavaThread* thread, int mode);
  82 
  83   void next()      { _vfst.next();}
  84   bool at_end()    { return _vfst.at_end(); }
  85 
  86   Method* method() { return _vfst.method(); }
  87   int bci()        { return _vfst.bci(); }
  88 
  89   void fill_frame(int index, objArrayHandle  frames_array,
  90                   const methodHandle& method, TRAPS);
  91 };
  92 
  93 class LiveFrameStream : public BaseFrameStream {
  94 private:
  95   enum {
  96     MODE_INTERPRETED = 0x01,
  97     MODE_COMPILED    = 0x02
  98   };
  99 
 100   javaVFrame*           _jvf;
 101 
 102   void fill_live_stackframe(Handle stackFrame, const methodHandle& method, TRAPS);
 103   static oop create_primitive_slot_instance(StackValueCollection* values,




  63   bool cleanup_magic_on_exit(objArrayHandle frames_array);
  64 
  65   bool is_valid_in(Thread* thread, objArrayHandle frames_array) {
  66     return (_thread == thread && check_magic(frames_array));
  67   }
  68 
  69   jlong address_value() {
  70     return (jlong) castable_address(this);
  71   }
  72 
  73   static BaseFrameStream* from_current(JavaThread* thread, jlong magic, objArrayHandle frames_array);
  74 };
  75 
  76 class JavaFrameStream : public BaseFrameStream {
  77 private:
  78   vframeStream          _vfst;
  79   bool                  _need_method_info;
  80 public:
  81   JavaFrameStream(JavaThread* thread, int mode);
  82 
  83   void next();
  84   bool at_end()    { return _vfst.at_end(); }
  85 
  86   Method* method() { return _vfst.method(); }
  87   int bci()        { return _vfst.bci(); }
  88 
  89   void fill_frame(int index, objArrayHandle  frames_array,
  90                   const methodHandle& method, TRAPS);
  91 };
  92 
  93 class LiveFrameStream : public BaseFrameStream {
  94 private:
  95   enum {
  96     MODE_INTERPRETED = 0x01,
  97     MODE_COMPILED    = 0x02
  98   };
  99 
 100   javaVFrame*           _jvf;
 101 
 102   void fill_live_stackframe(Handle stackFrame, const methodHandle& method, TRAPS);
 103   static oop create_primitive_slot_instance(StackValueCollection* values,


< prev index next >