--- a/src/hotspot/os/bsd/os_bsd.cpp Fri Jun 07 08:47:28 2019 -0300
+++ b/src/hotspot/os/bsd/os_bsd.cpp Wed Jun 05 16:53:52 2019 +0200
@@ -1265,13 +1265,21 @@
#else
void * result= ::dlopen(filename, RTLD_LAZY);
if (result != NULL) {
+ Events::log(NULL, "Loaded shared library %s", filename);
// Successful loading
return result;
}
- // Read system error message into ebuf
- ::strncpy(ebuf, ::dlerror(), ebuflen-1);
- ebuf[ebuflen-1]='\0';
+ const char* error_report = ::dlerror();
+ if (error_report == NULL) {
+ error_report = "dlerror returned no error description";
+ }
+ if (ebuf != NULL && ebuflen > 0) {
+ // Read system error message into ebuf
+ ::strncpy(ebuf, error_report, ebuflen-1);
+ ebuf[ebuflen-1]='\0';
+ }
+ Events::log(NULL, "Loading shared library %s failed, %s", filename, error_report);
return NULL;
#endif // STATIC_BUILD
@@ -1283,16 +1291,24 @@
#else
void * result= ::dlopen(filename, RTLD_LAZY);
if (result != NULL) {
+ Events::log(NULL, "Loaded shared library %s", filename);
// Successful loading
return result;
}
Elf32_Ehdr elf_head;
- // Read system error message into ebuf
- // It may or may not be overwritten below
- ::strncpy(ebuf, ::dlerror(), ebuflen-1);
- ebuf[ebuflen-1]='\0';
+ const char* const error_report = ::dlerror();
+ if (error_report == NULL) {
+ error_report = "dlerror returned no error description";
+ }
+ if (ebuf != NULL && ebuflen > 0) {
+ // Read system error message into ebuf
+ ::strncpy(ebuf, error_report, ebuflen-1);
+ ebuf[ebuflen-1]='\0';
+ }
+ Events::log(NULL, "Loading shared library %s failed, %s", filename, error_report);
+
int diag_msg_max_length=ebuflen-strlen(ebuf);
char* diag_msg_buf=ebuf+strlen(ebuf);