Lines Matching refs:env

54 #define CHECK_EXCEPTION_(value) if ((*env)->ExceptionOccurred(env)) { return value; }
55 #define CHECK_EXCEPTION if ((*env)->ExceptionOccurred(env)) { return;}
56 #define THROW_NEW_DEBUGGER_EXCEPTION_(str, value) { throw_new_debugger_exception(env, str); return value; }
57 #define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
59 static void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
60 (*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
63 static struct ps_prochandle* get_proc_handle(JNIEnv* env, jobject this_obj) {
64 jlong ptr = (*env)->GetLongField(env, this_obj, p_ps_prochandle_ID);
74 (JNIEnv *env, jclass cls) {
82 p_ps_prochandle_ID = (*env)->GetFieldID(env, cls, "p_ps_prochandle", "J");
84 threadList_ID = (*env)->GetFieldID(env, cls, "threadList", "Ljava/util/List;");
86 loadObjectList_ID = (*env)->GetFieldID(env, cls, "loadObjectList", "Ljava/util/List;");
90 createClosestSymbol_ID = (*env)->GetMethodID(env, cls, "createClosestSymbol",
93 createLoadObject_ID = (*env)->GetMethodID(env, cls, "createLoadObject",
96 getThreadForThreadId_ID = (*env)->GetMethodID(env, cls, "getThreadForThreadId",
100 listClass = (*env)->FindClass(env, "java/util/List");
102 listAdd_ID = (*env)->GetMethodID(env, listClass, "add", "(Ljava/lang/Object;)Z");
107 (JNIEnv *env, jclass cls)
118 static void fillThreadsAndLoadObjects(JNIEnv* env, jobject this_obj, struct ps_prochandle* ph) {
129 thread = (*env)->CallObjectMethod(env, this_obj, getThreadForThreadId_ID,
132 threadList = (*env)->GetObjectField(env, this_obj, threadList_ID);
134 (*env)->CallBooleanMethod(env, threadList, listAdd_ID, thread);
148 loadObject = (*env)->CallObjectMethod(env, this_obj, createLoadObject_ID,
149 (*env)->NewStringUTF(env, name), (jlong)0, (jlong)base);
151 loadObjectList = (*env)->GetObjectField(env, this_obj, loadObjectList_ID);
153 (*env)->CallBooleanMethod(env, loadObjectList, listAdd_ID, loadObject);
164 (JNIEnv *env, jobject this_obj, jint jpid) {
170 (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph);
171 fillThreadsAndLoadObjects(env, this_obj, ph);
180 (JNIEnv *env, jobject this_obj, jstring execName, jstring coreName) {
186 execName_cstr = (*env)->GetStringUTFChars(env, execName, &isCopy);
188 coreName_cstr = (*env)->GetStringUTFChars(env, coreName, &isCopy);
192 (*env)->ReleaseStringUTFChars(env, execName, execName_cstr);
193 (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr);
196 (*env)->SetLongField(env, this_obj, p_ps_prochandle_ID, (jlong)(intptr_t)ph);
197 (*env)->ReleaseStringUTFChars(env, execName, execName_cstr);
198 (*env)->ReleaseStringUTFChars(env, coreName, coreName_cstr);
199 fillThreadsAndLoadObjects(env, this_obj, ph);
208 (JNIEnv *env, jobject this_obj) {
209 struct ps_prochandle* ph = get_proc_handle(env, this_obj);
221 (JNIEnv *env, jobject this_obj, jstring objectName, jstring symbolName) {
225 struct ps_prochandle* ph = get_proc_handle(env, this_obj);
229 objectName_cstr = (*env)->GetStringUTFChars(env, objectName, &isCopy);
232 symbolName_cstr = (*env)->GetStringUTFChars(env, symbolName, &isCopy);
238 (*env)->ReleaseStringUTFChars(env, objectName, objectName_cstr);
240 (*env)->ReleaseStringUTFChars(env, symbolName, symbolName_cstr);
250 (JNIEnv *env, jobject this_obj, jlong addr) {
254 struct ps_prochandle* ph = get_proc_handle(env, this_obj);
257 return (*env)->CallObjectMethod(env, this_obj, createClosestSymbol_ID,
258 (*env)->NewStringUTF(env, sym), (jlong)offset);
267 (JNIEnv *env, jobject this_obj, jlong addr, jlong numBytes) {
274 array = (*env)->NewByteArray(env, numBytes);
276 bufPtr = (*env)->GetByteArrayElements(env, array, &isCopy);
279 err = ps_pread(get_proc_handle(env, this_obj), (psaddr_t) (uintptr_t)addr, bufPtr, numBytes);
280 (*env)->ReleaseByteArrayElements(env, array, bufPtr, 0);
285 (JNIEnv *env, jobject this_obj, jint lwp_id) {
292 struct ps_prochandle* ph = get_proc_handle(env, this_obj);
311 array = (*env)->NewLongArray(env, NPRGREG);
313 regs = (*env)->GetLongArrayElements(env, array, &isCopy);
339 regs = (*env)->GetLongArrayElements(env, array, &isCopy);
411 (*env)->ReleaseLongArrayElements(env, array, regs, JNI_COMMIT);