|
View:
New views
4 Messages
—
Rating Filter:
Alert me
|
|
|
NetBeans 6.1 Profiler, Sun JDK 1.5/1.6Hello everytbody!
I recently installed NetBeans 6.1 from ports and noticed there is no libprofilerinterface.so library for FreeBSD, and NetBeans complains the profiling wouldn't work. I've downloaded the sources of NetBeans and was able to build the libprofilerinterface.so from sources, once I placed it into the appropriate directory NetBeans expects it to appear in - NetBeans stops reporting the error, however profiling still doesn't work for some another reason - it just hands on the "calibration" stage. I had built the module with -ggdb option, and found there is java.core file and GDB shows this stack trace: ============================================================================= (gdb) bt #0 0x2817f9fb in kill () from /lib/libc.so.6 #1 0x280a3236 in raise () from /lib/libpthread.so.2 #2 0x2817e6a8 in abort () from /lib/libc.so.6 #3 0x2815a898 in __assert () from /lib/libc.so.6 #4 0x28808fda in initializeJVMTI (jvm=0x287b6ae0) at ../src-jdk15/common_functions.c:122 #5 0x2880911c in Agent_OnLoad (jvm=0x287b6ae0, options=0x0, reserved=0x0) at ../src-jdk15/common_functions.c:147 #6 0x286dfd3d in Threads::create_vm_init_agents () from /usr/local/jdk1.5.0/jre/lib/i386/server/libjvm.so #7 0x286e2b5f in Threads::create_vm () from /usr/local/jdk1.5.0/jre/lib/i386/server/libjvm.so #8 0x284627a1 in JNI_CreateJavaVM () from /usr/local/jdk1.5.0/jre/lib/i386/server/libjvm.so ============================================================================= the function initializeJVMTI dumped below: ============================================================================= void initializeJVMTI(JavaVM *jvm) { jvmtiError err; jvmtiCapabilities capas; jint res; /* Obtain the JVMTI environment to be used by this agent */ #ifdef JNI_VERSION_1_6 (*jvm)->GetEnv(jvm, (void**)&_jvmti, JVMTI_VERSION_1_1); #else (*jvm)->GetEnv(jvm, (void**)&_jvmti, JVMTI_VERSION_1_0); #endif /* Enable runtime class redefinition capability */ err = (*_jvmti)->GetCapabilities(_jvmti, &capas); assert(err == JVMTI_ERROR_NONE); capas.can_redefine_classes = 1; #ifdef JNI_VERSION_1_6 capas.can_retransform_classes = 1; #endif capas.can_generate_garbage_collection_events = 1; capas.can_generate_native_method_bind_events = 1; capas.can_generate_monitor_events = 1; capas.can_get_current_thread_cpu_time = 1; capas.can_generate_vm_object_alloc_events = 1; err = (*_jvmti)->AddCapabilities(_jvmti, &capas); if (err != JVMTI_ERROR_NONE) { fprintf(stderr, "Profiler Agent Error: Failed to obtain JVMTI capabilities, error code: %d\n", err); } /* Zero out the callbacks data structure for future use*/ _jvmti_callbacks = &_jvmti_callbacks_static; memset(_jvmti_callbacks, 0, sizeof(jvmtiEventCallbacks)); /* Enable class load hook event, that captures class file bytes for classes loaded by non-system loaders */ _jvmti_callbacks->ClassFileLoadHook = class_file_load_hook; _jvmti_callbacks->NativeMethodBind = native_method_bind_hook; _jvmti_callbacks->MonitorContendedEnter = monitor_contended_enter_hook; _jvmti_callbacks->MonitorContendedEntered = monitor_contended_entered_hook; _jvmti_callbacks->VMObjectAlloc = vm_object_alloc; res = (*_jvmti)->SetEventCallbacks(_jvmti, _jvmti_callbacks, sizeof(*_jvmti_callbacks)); assert (res == JVMTI_ERROR_NONE); res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL); assert(res == JVMTI_ERROR_NONE); res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL); /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! line 122 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ assert(res == JVMTI_ERROR_NONE); res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL); assert(res == JVMTI_ERROR_NONE); res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL); assert(res == JVMTI_ERROR_NONE); } ============================================================================= Does it makes sense for anybody? Is it possible to fix this somehow? Thank you in advance! -- Eugene N Dzhurinsky |
|
|
Re: NetBeans 6.1 Profiler, Sun JDK 1.5/1.6On Fri, May 16, 2008 at 03:19:27PM +0300, Eugeny N Dzhurinsky wrote:
> Hello everytbody! > > I recently installed NetBeans 6.1 from ports and noticed there is no > libprofilerinterface.so library for FreeBSD, and NetBeans complains the profiling > wouldn't work. I've downloaded the sources of NetBeans and was able to build the > libprofilerinterface.so from sources, once I placed it into the appropriate directory > NetBeans expects it to appear in - NetBeans stops reporting the error, however profiling > still doesn't work for some another reason - it just hands on the "calibration" stage. > > I had built the module with -ggdb option, and found there is java.core file and > GDB shows this stack trace: > > > ============================================================================= > (gdb) bt > #0 0x2817f9fb in kill () from /lib/libc.so.6 > #1 0x280a3236 in raise () from /lib/libpthread.so.2 > #2 0x2817e6a8 in abort () from /lib/libc.so.6 > #3 0x2815a898 in __assert () from /lib/libc.so.6 > #4 0x28808fda in initializeJVMTI (jvm=0x287b6ae0) at > ../src-jdk15/common_functions.c:122 So, in the code you included below, which is line 122? > #5 0x2880911c in Agent_OnLoad (jvm=0x287b6ae0, options=0x0, reserved=0x0) > at ../src-jdk15/common_functions.c:147 > #6 0x286dfd3d in Threads::create_vm_init_agents () > from /usr/local/jdk1.5.0/jre/lib/i386/server/libjvm.so > #7 0x286e2b5f in Threads::create_vm () from > /usr/local/jdk1.5.0/jre/lib/i386/server/libjvm.so > #8 0x284627a1 in JNI_CreateJavaVM () from > /usr/local/jdk1.5.0/jre/lib/i386/server/libjvm.so > ============================================================================= > > the function initializeJVMTI dumped below: > > ============================================================================= > void initializeJVMTI(JavaVM *jvm) { > jvmtiError err; > jvmtiCapabilities capas; > jint res; > > /* Obtain the JVMTI environment to be used by this agent */ > #ifdef JNI_VERSION_1_6 > (*jvm)->GetEnv(jvm, (void**)&_jvmti, JVMTI_VERSION_1_1); > #else > (*jvm)->GetEnv(jvm, (void**)&_jvmti, JVMTI_VERSION_1_0); > #endif > > /* Enable runtime class redefinition capability */ > err = (*_jvmti)->GetCapabilities(_jvmti, &capas); > assert(err == JVMTI_ERROR_NONE); > capas.can_redefine_classes = 1; > #ifdef JNI_VERSION_1_6 > capas.can_retransform_classes = 1; > #endif > capas.can_generate_garbage_collection_events = 1; > capas.can_generate_native_method_bind_events = 1; > capas.can_generate_monitor_events = 1; > capas.can_get_current_thread_cpu_time = 1; > capas.can_generate_vm_object_alloc_events = 1; > err = (*_jvmti)->AddCapabilities(_jvmti, &capas); > if (err != JVMTI_ERROR_NONE) { > fprintf(stderr, "Profiler Agent Error: Failed to obtain JVMTI capabilities, error code: %d\n", err); > } > > /* Zero out the callbacks data structure for future use*/ > _jvmti_callbacks = &_jvmti_callbacks_static; > memset(_jvmti_callbacks, 0, sizeof(jvmtiEventCallbacks)); > > /* Enable class load hook event, that captures class file bytes for classes loaded by non-system loaders */ > _jvmti_callbacks->ClassFileLoadHook = class_file_load_hook; > _jvmti_callbacks->NativeMethodBind = native_method_bind_hook; > _jvmti_callbacks->MonitorContendedEnter = monitor_contended_enter_hook; > _jvmti_callbacks->MonitorContendedEntered = monitor_contended_entered_hook; > _jvmti_callbacks->VMObjectAlloc = vm_object_alloc; > res = (*_jvmti)->SetEventCallbacks(_jvmti, _jvmti_callbacks, sizeof(*_jvmti_callbacks)); > assert (res == JVMTI_ERROR_NONE); > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_CLASS_FILE_LOAD_HOOK, NULL); > assert(res == JVMTI_ERROR_NONE); > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL); > > /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! line 122 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ > assert(res == JVMTI_ERROR_NONE); > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL); > assert(res == JVMTI_ERROR_NONE); > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTERED, NULL); > assert(res == JVMTI_ERROR_NONE); > } > ============================================================================= > > Does it makes sense for anybody? Is it possible to fix this somehow? > > Thank you in advance! > > -- > Eugene N Dzhurinsky -- Greg Lewis Email : glewis@... Eyes Beyond Web : http://www.eyesbeyond.com Information Technology FreeBSD : glewis@... _______________________________________________ freebsd-java@... mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-java To unsubscribe, send any mail to "freebsd-java-unsubscribe@..." |
|
|
Re: NetBeans 6.1 Profiler, Sun JDK 1.5/1.6On Fri, May 16, 2008 at 04:40:56PM -0700, Greg Lewis wrote:
> On Fri, May 16, 2008 at 03:19:27PM +0300, Eugeny N Dzhurinsky wrote: > > Hello everytbody! > > > > I recently installed NetBeans 6.1 from ports and noticed there is no > > libprofilerinterface.so library for FreeBSD, and NetBeans complains the profiling > > wouldn't work. I've downloaded the sources of NetBeans and was able to build the > > libprofilerinterface.so from sources, once I placed it into the appropriate directory > > NetBeans expects it to appear in - NetBeans stops reporting the error, however profiling > > still doesn't work for some another reason - it just hands on the "calibration" stage. > > > > I had built the module with -ggdb option, and found there is java.core file and > > GDB shows this stack trace: > > > > > > ============================================================================= > > (gdb) bt > > #0 0x2817f9fb in kill () from /lib/libc.so.6 > > #1 0x280a3236 in raise () from /lib/libpthread.so.2 > > #2 0x2817e6a8 in abort () from /lib/libc.so.6 > > #3 0x2815a898 in __assert () from /lib/libc.so.6 > > #4 0x28808fda in initializeJVMTI (jvm=0x287b6ae0) at > > ../src-jdk15/common_functions.c:122 > > So, in the code you included below, which is line 122? probably I highlighted it badly). > > assert(res == JVMTI_ERROR_NONE); > > > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL); > > > > /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! line 122 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ > > assert(res == JVMTI_ERROR_NONE); > > > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_MONITOR_CONTENDED_ENTER, NULL); > > assert(res == JVMTI_ERROR_NONE); -- Eugene N Dzhurinsky |
|
|
Re: NetBeans 6.1 Profiler, Sun JDK 1.5/1.6On Sat, May 17, 2008 at 02:53:09PM +0300, Eugeny N Dzhurinsky wrote:
> On Fri, May 16, 2008 at 04:40:56PM -0700, Greg Lewis wrote: > > On Fri, May 16, 2008 at 03:19:27PM +0300, Eugeny N Dzhurinsky wrote: > > > #1 0x280a3236 in raise () from /lib/libpthread.so.2 > > > #2 0x2817e6a8 in abort () from /lib/libc.so.6 > > > #3 0x2815a898 in __assert () from /lib/libc.so.6 > > > #4 0x28808fda in initializeJVMTI (jvm=0x287b6ae0) at > > > ../src-jdk15/common_functions.c:122 > > > > So, in the code you included below, which is line 122? > > Please see below (actually it was included in the original e-mail, however > probably I highlighted it badly). Thanks. > > > res = (*_jvmti)->SetEventNotificationMode(_jvmti, JVMTI_ENABLE, JVMTI_EVENT_NATIVE_METHOD_BIND, NULL); > > > > > > /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! line 122 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!*/ > > > assert(res == JVMTI_ERROR_NONE); If you've got this core in gdb you should be able to figure out what res actually is and what error that indicates. -- Greg Lewis Email : glewis@... Eyes Beyond Web : http://www.eyesbeyond.com Information Technology FreeBSD : glewis@... _______________________________________________ freebsd-java@... mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-java To unsubscribe, send any mail to "freebsd-java-unsubscribe@..." |
| Free embeddable forum powered by Nabble | Forum Help |