mirror of
https://github.com/openjdk/jdk.git
synced 2025-09-21 19:44:41 +02:00
8029172: warnings from b117 for hotspot.agent.src.os.linux: JNI exception pending
Added missed exception checks Reviewed-by: chegar, sla
This commit is contained in:
parent
ca7943ac3b
commit
4d88604ce5
1 changed files with 16 additions and 5 deletions
|
@ -64,7 +64,10 @@ static jmethodID listAdd_ID = 0;
|
||||||
#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
|
#define THROW_NEW_DEBUGGER_EXCEPTION(str) { throw_new_debugger_exception(env, str); return;}
|
||||||
|
|
||||||
void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
|
void throw_new_debugger_exception(JNIEnv* env, const char* errMsg) {
|
||||||
(*env)->ThrowNew(env, (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException"), errMsg);
|
jclass clazz;
|
||||||
|
clazz = (*env)->FindClass(env, "sun/jvm/hotspot/debugger/DebuggerException");
|
||||||
|
CHECK_EXCEPTION;
|
||||||
|
(*env)->ThrowNew(env, clazz, errMsg);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct ps_prochandle* get_proc_handle(JNIEnv* env, jobject this_obj) {
|
struct ps_prochandle* get_proc_handle(JNIEnv* env, jobject this_obj) {
|
||||||
|
@ -149,11 +152,14 @@ static void fillThreadsAndLoadObjects(JNIEnv* env, jobject this_obj, struct ps_p
|
||||||
const char* name;
|
const char* name;
|
||||||
jobject loadObject;
|
jobject loadObject;
|
||||||
jobject loadObjectList;
|
jobject loadObjectList;
|
||||||
|
jstring str;
|
||||||
|
|
||||||
base = get_lib_base(ph, i);
|
base = get_lib_base(ph, i);
|
||||||
name = get_lib_name(ph, i);
|
name = get_lib_name(ph, i);
|
||||||
loadObject = (*env)->CallObjectMethod(env, this_obj, createLoadObject_ID,
|
|
||||||
(*env)->NewStringUTF(env, name), (jlong)0, (jlong)base);
|
str = (*env)->NewStringUTF(env, name);
|
||||||
|
CHECK_EXCEPTION;
|
||||||
|
loadObject = (*env)->CallObjectMethod(env, this_obj, createLoadObject_ID, str, (jlong)0, (jlong)base);
|
||||||
CHECK_EXCEPTION;
|
CHECK_EXCEPTION;
|
||||||
loadObjectList = (*env)->GetObjectField(env, this_obj, loadObjectList_ID);
|
loadObjectList = (*env)->GetObjectField(env, this_obj, loadObjectList_ID);
|
||||||
CHECK_EXCEPTION;
|
CHECK_EXCEPTION;
|
||||||
|
@ -298,13 +304,18 @@ JNIEXPORT jlong JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_l
|
||||||
JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_lookupByAddress0
|
JNIEXPORT jobject JNICALL Java_sun_jvm_hotspot_debugger_linux_LinuxDebuggerLocal_lookupByAddress0
|
||||||
(JNIEnv *env, jobject this_obj, jlong addr) {
|
(JNIEnv *env, jobject this_obj, jlong addr) {
|
||||||
uintptr_t offset;
|
uintptr_t offset;
|
||||||
|
jobject obj;
|
||||||
|
jstring str;
|
||||||
const char* sym = NULL;
|
const char* sym = NULL;
|
||||||
|
|
||||||
struct ps_prochandle* ph = get_proc_handle(env, this_obj);
|
struct ps_prochandle* ph = get_proc_handle(env, this_obj);
|
||||||
sym = symbol_for_pc(ph, (uintptr_t) addr, &offset);
|
sym = symbol_for_pc(ph, (uintptr_t) addr, &offset);
|
||||||
if (sym == NULL) return 0;
|
if (sym == NULL) return 0;
|
||||||
return (*env)->CallObjectMethod(env, this_obj, createClosestSymbol_ID,
|
str = (*env)->NewStringUTF(env, sym);
|
||||||
(*env)->NewStringUTF(env, sym), (jlong)offset);
|
CHECK_EXCEPTION_(NULL);
|
||||||
|
obj = (*env)->CallObjectMethod(env, this_obj, createClosestSymbol_ID, str, (jlong)offset);
|
||||||
|
CHECK_EXCEPTION_(NULL);
|
||||||
|
return obj;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue