提交 650060e2 编写于 作者: J jprovino

8013461: There is a symbol AsyncGetCallTrace in libjvm.symbols that does not...

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
上级 29dcf839
......@@ -25,7 +25,7 @@ ifeq ($(INCLUDE_JVMTI), false)
CXXFLAGS += -DINCLUDE_JVMTI=0
CFLAGS += -DINCLUDE_JVMTI=0
Src_Files_EXCLUDE += jvmtiGetLoadedClasses.cpp forte.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \
Src_Files_EXCLUDE += jvmtiGetLoadedClasses.cpp jvmtiThreadState.cpp jvmtiExtensions.cpp \
jvmtiImpl.cpp jvmtiManageCapabilities.cpp jvmtiRawMonitor.cpp jvmtiUtil.cpp jvmtiTrace.cpp \
jvmtiCodeBlobEvents.cpp jvmtiEnv.cpp jvmtiRedefineClasses.cpp jvmtiEnvBase.cpp jvmtiEnvThreadState.cpp \
jvmtiTagMap.cpp jvmtiEventController.cpp evmCompat.cpp jvmtiEnter.xsl jvmtiExport.cpp \
......
......@@ -35,6 +35,19 @@
#include "runtime/vframe.hpp"
#include "runtime/vframeArray.hpp"
// call frame copied from old .h file and renamed
typedef struct {
jint lineno; // line number in the source file
jmethodID method_id; // method executed in this frame
} ASGCT_CallFrame;
// call trace copied from old .h file and renamed
typedef struct {
JNIEnv *env_id; // Env where trace was recorded
jint num_frames; // number of frames in this trace
ASGCT_CallFrame *frames; // frames
} ASGCT_CallTrace;
// These name match the names reported by the forte quality kit
enum {
ticks_no_Java_frame = 0,
......@@ -50,6 +63,8 @@ enum {
ticks_safepoint = -10
};
#if INCLUDE_JVMTI
//-------------------------------------------------------
// Native interfaces for use by Forte tools.
......@@ -360,20 +375,6 @@ static bool find_initial_Java_frame(JavaThread* thread,
}
// call frame copied from old .h file and renamed
typedef struct {
jint lineno; // line number in the source file
jmethodID method_id; // method executed in this frame
} ASGCT_CallFrame;
// call trace copied from old .h file and renamed
typedef struct {
JNIEnv *env_id; // Env where trace was recorded
jint num_frames; // number of frames in this trace
ASGCT_CallFrame *frames; // frames
} ASGCT_CallTrace;
static void forte_fill_call_trace_given_top(JavaThread* thd,
ASGCT_CallTrace* trace,
int depth,
......@@ -634,3 +635,12 @@ void Forte::register_stub(const char* name, address start, address end) {
pointer_delta(end, start, sizeof(jbyte)), 0, NULL);
#endif // !_WINDOWS && !IA64
}
#else // INCLUDE_JVMTI
extern "C" {
JNIEXPORT
void AsyncGetCallTrace(ASGCT_CallTrace *trace, jint depth, void* ucontext) {
trace->num_frames = ticks_no_class_load; // -1
}
}
#endif // INCLUDE_JVMTI
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册