8013461: There is a symbol AsyncGetCallTrace in libjvm.symbols that does not exist in minimal/libjvm.a when DEBUG_LEVEL == release

Tue, 28 May 2013 11:17:16 -0400

author
jprovino
date
Tue, 28 May 2013 11:17:16 -0400
changeset 5187
dcb062bea05b
parent 5172
194b27b865bc
child 5189
9e954e8d9139

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

mercurial