< prev index next >

src/hotspot/share/prims/jvmtiEnvBase.hpp

Print this page

        

*** 435,469 **** _result(JVMTI_ERROR_THREAD_NOT_ALIVE) {} jvmtiError result() { return _result; } void do_thread(Thread *target); }; ! // VM operation to get stack trace at safepoint. ! class VM_GetStackTrace : public VM_Operation { private: JvmtiEnv *_env; - JavaThread *_java_thread; jint _start_depth; jint _max_count; jvmtiFrameInfo *_frame_buffer; jint *_count_ptr; jvmtiError _result; public: ! VM_GetStackTrace(JvmtiEnv *env, JavaThread *java_thread, jint start_depth, jint max_count, ! jvmtiFrameInfo* frame_buffer, jint* count_ptr) { ! _env = env; ! _java_thread = java_thread; ! _start_depth = start_depth; ! _max_count = max_count; ! _frame_buffer = frame_buffer; ! _count_ptr = count_ptr; } jvmtiError result() { return _result; } ! VMOp_Type type() const { return VMOp_GetStackTrace; } ! void doit(); }; // forward declaration struct StackInfoNode; --- 435,470 ---- _result(JVMTI_ERROR_THREAD_NOT_ALIVE) {} jvmtiError result() { return _result; } void do_thread(Thread *target); }; ! // HandshakeClosure to get stack trace. ! class GetStackTraceClosure : public HandshakeClosure { private: JvmtiEnv *_env; jint _start_depth; jint _max_count; jvmtiFrameInfo *_frame_buffer; jint *_count_ptr; + bool _needs_thread_state; + jint _state; jvmtiError _result; public: ! GetStackTraceClosure(JvmtiEnv *env, jint start_depth, jint max_count, ! jvmtiFrameInfo* frame_buffer, ! jint* count_ptr, bool needs_thread_state) ! : HandshakeClosure("GetStackTrace"), ! _env(env), _start_depth(start_depth), _max_count(max_count), ! _frame_buffer(frame_buffer), _count_ptr(count_ptr), ! _needs_thread_state(needs_thread_state), _state(0), ! _result(JVMTI_ERROR_NONE) { } jvmtiError result() { return _result; } ! jint state() { return _state; } ! void do_thread(Thread *target); }; // forward declaration struct StackInfoNode;
*** 533,583 **** VMOp_Type type() const { return VMOp_GetThreadListStackTraces; } void doit(); }; ! // VM operation to count stack frames at safepoint. ! class VM_GetFrameCount : public VM_Operation { private: JvmtiEnv *_env; JvmtiThreadState *_state; jint *_count_ptr; jvmtiError _result; public: ! VM_GetFrameCount(JvmtiEnv *env, JvmtiThreadState *state, jint *count_ptr) { ! _env = env; ! _state = state; ! _count_ptr = count_ptr; } - VMOp_Type type() const { return VMOp_GetFrameCount; } jvmtiError result() { return _result; } ! void doit(); }; ! // VM operation to frame location at safepoint. ! class VM_GetFrameLocation : public VM_Operation { private: JvmtiEnv *_env; - JavaThread* _java_thread; jint _depth; jmethodID* _method_ptr; jlocation* _location_ptr; jvmtiError _result; public: ! VM_GetFrameLocation(JvmtiEnv *env, JavaThread* java_thread, jint depth, ! jmethodID* method_ptr, jlocation* location_ptr) { ! _env = env; ! _java_thread = java_thread; ! _depth = depth; ! _method_ptr = method_ptr; ! _location_ptr = location_ptr; } - VMOp_Type type() const { return VMOp_GetFrameLocation; } jvmtiError result() { return _result; } ! void doit(); }; // ResourceTracker // --- 534,579 ---- VMOp_Type type() const { return VMOp_GetThreadListStackTraces; } void doit(); }; ! // HandshakeClosure to count stack frames. ! class GetFrameCountClosure : public HandshakeClosure { private: JvmtiEnv *_env; JvmtiThreadState *_state; jint *_count_ptr; jvmtiError _result; public: ! GetFrameCountClosure(JvmtiEnv *env, JvmtiThreadState *state, jint *count_ptr) ! : HandshakeClosure("GetFrameCount"), ! _env(env), _state(state), ! _count_ptr(count_ptr), _result(JVMTI_ERROR_NONE) { } jvmtiError result() { return _result; } ! void do_thread(Thread *target); }; ! // HandshakeClosure to frame location. ! class GetFrameLocationClosure : public HandshakeClosure { private: JvmtiEnv *_env; jint _depth; jmethodID* _method_ptr; jlocation* _location_ptr; jvmtiError _result; public: ! GetFrameLocationClosure(JvmtiEnv *env, jint depth, ! jmethodID* method_ptr, jlocation* location_ptr) ! : HandshakeClosure("GetFrameLocation"), ! _env(env), _depth(depth), _method_ptr(method_ptr), ! _location_ptr(location_ptr), _result(JVMTI_ERROR_NONE) { } jvmtiError result() { return _result; } ! void do_thread(Thread *target); }; // ResourceTracker //
< prev index next >