mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 06:45:07 +02:00
8013461: There is a symbol AsyncGetCallTrace in libjvm.symbols that does not exist in minimal/libjvm.a when DEBUG_LEVEL == release
AsyncGetCallTrace is needed in libjvm.symbols so that programs which reference it can build correctly. Reviewed-by: dholmes, bobv
This commit is contained in:
parent
ddea5b012c
commit
b0dcc34e06
2 changed files with 25 additions and 15 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue