< 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 >