--- old/src/share/vm/prims/jvmtiEnvBase.hpp Tue Feb 25 06:03:10 2014 +++ new/src/share/vm/prims/jvmtiEnvBase.hpp Tue Feb 25 06:03:09 2014 @@ -334,7 +334,30 @@ JvmtiEnv* next(JvmtiEnvBase* env) { return env->next_environment(); } }; +// VM operation to update for pop top frame. +class VM_UpdateForPopTopFrame : public VM_Operation { +private: + JvmtiThreadState* _state; + jvmtiError _result; +public: + VM_UpdateForPopTopFrame(JvmtiThreadState* state) { + _state = state; + _result = JVMTI_ERROR_NONE; + } + VMOp_Type type() const { return VMOp_UpdateForPopTopFrame; } + jvmtiError result() { return _result; } + void doit() { + JavaThread* jt = _state->get_thread(); + if (Threads::includes(jt) && !jt->is_exiting() && jt->threadObj() != NULL) { + _state->update_for_pop_top_frame(); + } else { + _result = JVMTI_ERROR_THREAD_NOT_ALIVE; + } + } +}; + + // VM operation to get monitor information with stack depth. class VM_GetOwnedMonitorInfo : public VM_Operation { private: