Tue, 28 May 2013 11:17:16 -0400
8013461: There is a symbol AsyncGetCallTrace in libjvm.symbols that does not exist in minimal/libjvm.a when DEBUG_LEVEL == release
Summary: AsyncGetCallTrace is needed in libjvm.symbols so that programs which reference it can build correctly.
Reviewed-by: dholmes, bobv
make/excludeSrc.make | file | annotate | diff | comparison | revisions | |
src/share/vm/prims/forte.cpp | file | annotate | diff | comparison | revisions |
1.1 --- a/make/excludeSrc.make Fri May 24 09:35:10 2013 -0700 1.2 +++ b/make/excludeSrc.make Tue May 28 11:17:16 2013 -0400 1.3 @@ -25,7 +25,7 @@ 1.4 CXXFLAGS += -DINCLUDE_JVMTI=0 1.5 CFLAGS += -DINCLUDE_JVMTI=0 1.6 1.7 - Src_Files_EXCLUDE += jvmtiGetLoadedClasses.cpp forte.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \ 1.8 + Src_Files_EXCLUDE += jvmtiGetLoadedClasses.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \ 1.9 jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp \ 1.10 jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp \ 1.11 jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp \
2.1 --- a/src/share/vm/prims/forte.cpp Fri May 24 09:35:10 2013 -0700 2.2 +++ b/src/share/vm/prims/forte.cpp Tue May 28 11:17:16 2013 -0400 2.3 @@ -35,6 +35,19 @@ 2.4 #include "runtime/vframe.hpp" 2.5 #include "runtime/vframeArray.hpp" 2.6 2.7 +// call frame copied from old .h file and renamed 2.8 +typedef struct { 2.9 + jint lineno; // line number in the source file 2.10 + jmethodID method_id; // method executed in this frame 2.11 +} ASGCT_CallFrame; 2.12 + 2.13 +// call trace copied from old .h file and renamed 2.14 +typedef struct { 2.15 + JNIEnv *env_id; // Env where trace was recorded 2.16 + jint num_frames; // number of frames in this trace 2.17 + ASGCT_CallFrame *frames; // frames 2.18 +} ASGCT_CallTrace; 2.19 + 2.20 // These name match the names reported by the forte quality kit 2.21 enum { 2.22 ticks_no_Java_frame = 0, 2.23 @@ -50,6 +63,8 @@ 2.24 ticks_safepoint = -10 2.25 }; 2.26 2.27 +#if INCLUDE_JVMTI 2.28 + 2.29 //------------------------------------------------------- 2.30 2.31 // Native interfaces for use by Forte tools. 2.32 @@ -360,20 +375,6 @@ 2.33 2.34 } 2.35 2.36 - 2.37 -// call frame copied from old .h file and renamed 2.38 -typedef struct { 2.39 - jint lineno; // line number in the source file 2.40 - jmethodID method_id; // method executed in this frame 2.41 -} ASGCT_CallFrame; 2.42 - 2.43 -// call trace copied from old .h file and renamed 2.44 -typedef struct { 2.45 - JNIEnv *env_id; // Env where trace was recorded 2.46 - jint num_frames; // number of frames in this trace 2.47 - ASGCT_CallFrame *frames; // frames 2.48 -} ASGCT_CallTrace; 2.49 - 2.50 static void forte_fill_call_trace_given_top(JavaThread* thd, 2.51 ASGCT_CallTrace* trace, 2.52 int depth, 2.53 @@ -634,3 +635,12 @@ 2.54 pointer_delta(end, start, sizeof(jbyte)), 0, NULL); 2.55 #endif // !_WINDOWS && !IA64 2.56 } 2.57 + 2.58 +#else // INCLUDE_JVMTI 2.59 +extern "C" { 2.60 + JNIEXPORT 2.61 + void AsyncGetCallTrace(ASGCT_CallTrace *trace, jint depth, void* ucontext) { 2.62 + trace->num_frames = ticks_no_class_load; // -1 2.63 + } 2.64 +} 2.65 +#endif // INCLUDE_JVMTI