--- old/src/hotspot/share/prims/jvmtiExport.cpp 2017-11-03 20:54:56.190128587 +0900 +++ new/src/hotspot/share/prims/jvmtiExport.cpp 2017-11-03 20:54:55.980127898 +0900 @@ -2475,7 +2475,7 @@ jint JvmtiExport::load_agent_library(const char *agent, const char *absParam, const char *options, outputStream* st) { - char ebuf[1024]; + char ebuf[1024] = {0}; char buffer[JVM_MAXPATHLEN]; void* library = NULL; jint result = JNI_ERR; @@ -2525,6 +2525,8 @@ if (!agent_lib->is_static_lib()) { os::dll_unload(library); } + st->print_cr("%s is not available in %s", + on_attach_symbols[0], agent_lib->name()); delete agent_lib; } else { // Invoke the Agent_OnAttach function @@ -2539,6 +2541,8 @@ // Agent_OnAttach may have used JNI if (HAS_PENDING_EXCEPTION) { + java_lang_Throwable::print(PENDING_EXCEPTION, st); + st->cr(); CLEAR_PENDING_EXCEPTION; } @@ -2550,11 +2554,16 @@ delete agent_lib; } - // Agent_OnAttach executed so completion status is JNI_OK - st->print_cr("%d", result); + st->print_cr("return code: %d", result); result = JNI_OK; } + } else { + st->print_cr("%s was not loaded.", agent); + if (*ebuf != '\0') { + st->print_cr("%s", ebuf); + } } + return result; }