mirror of git://gcc.gnu.org/git/gcc.git
jvm.h (_Jv_GetJVMTIEnv): Declare.
* include/jvm.h (_Jv_GetJVMTIEnv): Declare. * jni.cc (_Jv_JNI_GetEnv): Handle JVMTI requests. * jvmti.cc: New file. * Makefile.am (libgcj_la_SOURCES): Add jvmti.cc. * Makefile.in: Regenerate. From-SVN: r115629
This commit is contained in:
parent
6b1fd291b5
commit
94f473ee2c
|
@ -1,3 +1,11 @@
|
||||||
|
2006-07-20 Keith Seitz <keiths@redhat.com>
|
||||||
|
|
||||||
|
* include/jvm.h (_Jv_GetJVMTIEnv): Declare.
|
||||||
|
* jni.cc (_Jv_JNI_GetEnv): Handle JVMTI requests.
|
||||||
|
* jvmti.cc: New file.
|
||||||
|
* Makefile.am (libgcj_la_SOURCES): Add jvmti.cc.
|
||||||
|
* Makefile.in: Regenerate.
|
||||||
|
|
||||||
2006-07-20 David Daney <ddaney@avtrex.com>
|
2006-07-20 David Daney <ddaney@avtrex.com>
|
||||||
|
|
||||||
* configure.host: Enable the interpreter for mipsel-* and mips-*.
|
* configure.host: Enable the interpreter for mipsel-* and mips-*.
|
||||||
|
|
|
@ -177,7 +177,7 @@ libgij_la_LIBADD = -L$(here)/.libs libgcj.la
|
||||||
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
||||||
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
|
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
|
||||||
|
|
||||||
libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc \
|
libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc stacktrace.cc \
|
||||||
link.cc defineclass.cc interpret.cc verify.cc \
|
link.cc defineclass.cc interpret.cc verify.cc \
|
||||||
java/lang/Class.java java/lang/Object.java \
|
java/lang/Class.java java/lang/Object.java \
|
||||||
$(nat_source_files)
|
$(nat_source_files)
|
||||||
|
|
|
@ -249,7 +249,7 @@ am__DEPENDENCIES_2 = gnu-CORBA.lo gnu-java-awt-peer-gtk.lo \
|
||||||
am__DEPENDENCIES_3 = $(patsubst classpath/resource/%,%,$(addsuffix \
|
am__DEPENDENCIES_3 = $(patsubst classpath/resource/%,%,$(addsuffix \
|
||||||
.lo,$(property_files)))
|
.lo,$(property_files)))
|
||||||
am__DEPENDENCIES_4 =
|
am__DEPENDENCIES_4 =
|
||||||
am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
|
am__libgcj_la_SOURCES_DIST = prims.cc jni.cc jvmti.cc exception.cc \
|
||||||
stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \
|
stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \
|
||||||
java/lang/Class.java java/lang/Object.java \
|
java/lang/Class.java java/lang/Object.java \
|
||||||
gnu/classpath/natSystemProperties.cc gnu/gcj/natCore.cc \
|
gnu/classpath/natSystemProperties.cc gnu/gcj/natCore.cc \
|
||||||
|
@ -340,8 +340,8 @@ am__objects_2 = gnu/classpath/natSystemProperties.lo \
|
||||||
@USING_POSIX_THREADS_TRUE@am__objects_8 = posix-threads.lo
|
@USING_POSIX_THREADS_TRUE@am__objects_8 = posix-threads.lo
|
||||||
@USING_WIN32_THREADS_TRUE@am__objects_9 = win32-threads.lo
|
@USING_WIN32_THREADS_TRUE@am__objects_9 = win32-threads.lo
|
||||||
@USING_NO_THREADS_TRUE@am__objects_10 = no-threads.lo
|
@USING_NO_THREADS_TRUE@am__objects_10 = no-threads.lo
|
||||||
am_libgcj_la_OBJECTS = prims.lo jni.lo exception.lo stacktrace.lo \
|
am_libgcj_la_OBJECTS = prims.lo jni.lo jvmti.lo exception.lo \
|
||||||
link.lo defineclass.lo interpret.lo verify.lo \
|
stacktrace.lo link.lo defineclass.lo interpret.lo verify.lo \
|
||||||
java/lang/Class.lo java/lang/Object.lo $(am__objects_2) \
|
java/lang/Class.lo java/lang/Object.lo $(am__objects_2) \
|
||||||
$(am__objects_3) $(am__objects_4) $(am__objects_5) \
|
$(am__objects_3) $(am__objects_4) $(am__objects_5) \
|
||||||
$(am__objects_6) $(am__objects_7) $(am__objects_8) \
|
$(am__objects_6) $(am__objects_7) $(am__objects_8) \
|
||||||
|
@ -756,12 +756,12 @@ libgij_la_LIBADD = -L$(here)/.libs libgcj.la
|
||||||
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
|
||||||
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
|
-version-info `grep -v '^\#' $(srcdir)/libtool-version` $(LIBGCJ_LD_SYMBOLIC)
|
||||||
|
|
||||||
libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
|
libgcj_la_SOURCES = prims.cc jni.cc jvmti.cc exception.cc \
|
||||||
defineclass.cc interpret.cc verify.cc java/lang/Class.java \
|
stacktrace.cc link.cc defineclass.cc interpret.cc verify.cc \
|
||||||
java/lang/Object.java $(nat_source_files) $(am__append_5) \
|
java/lang/Class.java java/lang/Object.java $(nat_source_files) \
|
||||||
$(am__append_6) $(am__append_7) $(am__append_8) \
|
$(am__append_5) $(am__append_6) $(am__append_7) \
|
||||||
$(am__append_9) $(am__append_10) $(am__append_11) \
|
$(am__append_8) $(am__append_9) $(am__append_10) \
|
||||||
$(am__append_12)
|
$(am__append_11) $(am__append_12)
|
||||||
nat_files = $(nat_source_files:.cc=.lo)
|
nat_files = $(nat_source_files:.cc=.lo)
|
||||||
xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
|
xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
|
||||||
|
|
||||||
|
@ -7950,6 +7950,7 @@ distclean-compile:
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/interpret.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni-libjvm.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni-libjvm.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jni.Plo@am__quote@
|
||||||
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/jvmti.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/link.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no-threads.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/no-threads.Plo@am__quote@
|
||||||
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nogc.Plo@am__quote@
|
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/nogc.Plo@am__quote@
|
||||||
|
|
|
@ -573,6 +573,10 @@ void _Jv_FreeJNIEnv (_Jv_JNIEnv *);
|
||||||
struct _Jv_JavaVM;
|
struct _Jv_JavaVM;
|
||||||
_Jv_JavaVM *_Jv_GetJavaVM ();
|
_Jv_JavaVM *_Jv_GetJavaVM ();
|
||||||
|
|
||||||
|
/* Get the JVMTI environment */
|
||||||
|
struct _Jv_JVMTIEnv;
|
||||||
|
_Jv_JVMTIEnv *_Jv_GetJVMTIEnv (void);
|
||||||
|
|
||||||
// Some verification functions from defineclass.cc.
|
// Some verification functions from defineclass.cc.
|
||||||
bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig);
|
bool _Jv_VerifyFieldSignature (_Jv_Utf8Const*sig);
|
||||||
bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig);
|
bool _Jv_VerifyMethodSignature (_Jv_Utf8Const*sig);
|
||||||
|
|
|
@ -22,6 +22,7 @@ details. */
|
||||||
#ifdef ENABLE_JVMPI
|
#ifdef ENABLE_JVMPI
|
||||||
#include <jvmpi.h>
|
#include <jvmpi.h>
|
||||||
#endif
|
#endif
|
||||||
|
#include <jvmti.h>
|
||||||
|
|
||||||
#include <java/lang/Class.h>
|
#include <java/lang/Class.h>
|
||||||
#include <java/lang/ClassLoader.h>
|
#include <java/lang/ClassLoader.h>
|
||||||
|
@ -2495,6 +2496,13 @@ _Jv_JNI_GetEnv (JavaVM *, void **penv, jint version)
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Handle JVMTI requests
|
||||||
|
if (version == JVMTI_VERSION_1_0)
|
||||||
|
{
|
||||||
|
*penv = (void *) _Jv_GetJVMTIEnv ();
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// FIXME: do we really want to support 1.1?
|
// FIXME: do we really want to support 1.1?
|
||||||
if (version != JNI_VERSION_1_4 && version != JNI_VERSION_1_2
|
if (version != JNI_VERSION_1_4 && version != JNI_VERSION_1_2
|
||||||
&& version != JNI_VERSION_1_1)
|
&& version != JNI_VERSION_1_1)
|
||||||
|
|
|
@ -0,0 +1,184 @@
|
||||||
|
// jvmti.cc - JVMTI implementation
|
||||||
|
|
||||||
|
/* Copyright (C) 2006 Free Software Foundation
|
||||||
|
|
||||||
|
This file is part of libgcj.
|
||||||
|
|
||||||
|
This software is copyrighted work licensed under the terms of the
|
||||||
|
Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
|
||||||
|
details. */
|
||||||
|
|
||||||
|
#include <config.h>
|
||||||
|
|
||||||
|
#include <jvm.h>
|
||||||
|
#include <jvmti.h>
|
||||||
|
|
||||||
|
#define RESERVED NULL
|
||||||
|
#define UNIMPLEMENTED NULL
|
||||||
|
|
||||||
|
struct _Jv_jvmtiEnv _Jv_JVMTI_Interface =
|
||||||
|
{
|
||||||
|
RESERVED, // reserved1
|
||||||
|
UNIMPLEMENTED, // SetEventNotification
|
||||||
|
RESERVED, // reserved3
|
||||||
|
UNIMPLEMENTED, // GetAllThreads
|
||||||
|
UNIMPLEMENTED, // SuspendThread
|
||||||
|
UNIMPLEMENTED, // ResumeThread
|
||||||
|
UNIMPLEMENTED, // StopThread
|
||||||
|
UNIMPLEMENTED, // InterruptThread
|
||||||
|
UNIMPLEMENTED, // GetThreadInfo
|
||||||
|
UNIMPLEMENTED, // GetOwnedMonitorInfo
|
||||||
|
UNIMPLEMENTED, // GetCurrentContendedMonitor
|
||||||
|
UNIMPLEMENTED, // RunAgentThread
|
||||||
|
UNIMPLEMENTED, // GetTopThreadGroups
|
||||||
|
UNIMPLEMENTED, // GetThreadGroupInfo
|
||||||
|
UNIMPLEMENTED, // GetThreadGroupChildren
|
||||||
|
UNIMPLEMENTED, // GetFrameCount
|
||||||
|
UNIMPLEMENTED, // GetThreadState
|
||||||
|
RESERVED, // reserved18
|
||||||
|
UNIMPLEMENTED, // GetFrameLocation
|
||||||
|
UNIMPLEMENTED, // NotifyPopFrame
|
||||||
|
UNIMPLEMENTED, // GetLocalObject
|
||||||
|
UNIMPLEMENTED, // GetLocalInt
|
||||||
|
UNIMPLEMENTED, // GetLocalLong
|
||||||
|
UNIMPLEMENTED, // GetLocalFloat
|
||||||
|
UNIMPLEMENTED, // GetLocalDouble
|
||||||
|
UNIMPLEMENTED, // SetLocalObject
|
||||||
|
UNIMPLEMENTED, // SetLocalInt
|
||||||
|
UNIMPLEMENTED, // SetLocalLong
|
||||||
|
UNIMPLEMENTED, // SetLocalFloat
|
||||||
|
UNIMPLEMENTED, // SetLocalDouble
|
||||||
|
UNIMPLEMENTED, // CreateRawMonitor
|
||||||
|
UNIMPLEMENTED, // DestroyRawMonitor
|
||||||
|
UNIMPLEMENTED, // RawMonitorEnter
|
||||||
|
UNIMPLEMENTED, // RawMonitorExit
|
||||||
|
UNIMPLEMENTED, // RawMonitorWait
|
||||||
|
UNIMPLEMENTED, // RawMonitorNotify
|
||||||
|
UNIMPLEMENTED, // RawMonitorNotifyAll
|
||||||
|
UNIMPLEMENTED, // SetBreakpoint
|
||||||
|
UNIMPLEMENTED, // CleareBreakpoint
|
||||||
|
RESERVED, // reserved40
|
||||||
|
UNIMPLEMENTED, // SetFieldAccessWatch
|
||||||
|
UNIMPLEMENTED, // ClearFieldAccessWatch
|
||||||
|
UNIMPLEMENTED, // SetFieldModificationWatch
|
||||||
|
UNIMPLEMENTED, // ClearFieldModificationWatch
|
||||||
|
RESERVED, // reserved45
|
||||||
|
UNIMPLEMENTED, // Allocate
|
||||||
|
UNIMPLEMENTED, // Deallocate
|
||||||
|
UNIMPLEMENTED, // GetClassSignature
|
||||||
|
UNIMPLEMENTED, // GetClassStatus
|
||||||
|
UNIMPLEMENTED, // GetSourceFileName
|
||||||
|
UNIMPLEMENTED, // GetClassModifiers
|
||||||
|
UNIMPLEMENTED, // GetClassMethods
|
||||||
|
UNIMPLEMENTED, // GetClassFields
|
||||||
|
UNIMPLEMENTED, // GetImplementedInterfaces
|
||||||
|
UNIMPLEMENTED, // IsInterface
|
||||||
|
UNIMPLEMENTED, // IsArrayClass
|
||||||
|
UNIMPLEMENTED, // GetClassLoader
|
||||||
|
UNIMPLEMENTED, // GetObjectHashCode
|
||||||
|
UNIMPLEMENTED, // GetObjectMonitorUsage
|
||||||
|
UNIMPLEMENTED, // GetFieldName
|
||||||
|
UNIMPLEMENTED, // GetFieldDeclaringClass
|
||||||
|
UNIMPLEMENTED, // GetFieldModifiers
|
||||||
|
UNIMPLEMENTED, // IsFieldSynthetic
|
||||||
|
UNIMPLEMENTED, // GetMethodName
|
||||||
|
UNIMPLEMENTED, // GetMethodDeclaringClass
|
||||||
|
UNIMPLEMENTED, // GetMethodModiifers
|
||||||
|
RESERVED, // reserved67
|
||||||
|
UNIMPLEMENTED, // GetMaxLocals
|
||||||
|
UNIMPLEMENTED, // GetArgumentsSize
|
||||||
|
UNIMPLEMENTED, // GetLineNumberTable
|
||||||
|
UNIMPLEMENTED, // GetMethodLocation
|
||||||
|
UNIMPLEMENTED, // GetLocalVariableTable
|
||||||
|
RESERVED, // reserved73
|
||||||
|
RESERVED, // reserved74
|
||||||
|
UNIMPLEMENTED, // GetBytecodes
|
||||||
|
UNIMPLEMENTED, // IsMethodNative
|
||||||
|
UNIMPLEMENTED, // IsMethodSynthetic
|
||||||
|
UNIMPLEMENTED, // GetLoadedClasses
|
||||||
|
UNIMPLEMENTED, // GetClassLoaderClasses
|
||||||
|
UNIMPLEMENTED, // PopFrame
|
||||||
|
RESERVED, // reserved81
|
||||||
|
RESERVED, // reserved82
|
||||||
|
RESERVED, // reserved83
|
||||||
|
RESERVED, // reserved84
|
||||||
|
RESERVED, // reserved85
|
||||||
|
RESERVED, // reserved86
|
||||||
|
UNIMPLEMENTED, // RedefineClasses
|
||||||
|
UNIMPLEMENTED, // GetVersionNumber
|
||||||
|
UNIMPLEMENTED, // GetCapabilities
|
||||||
|
UNIMPLEMENTED, // GetSourceDebugExtension
|
||||||
|
UNIMPLEMENTED, // IsMethodObsolete
|
||||||
|
UNIMPLEMENTED, // SuspendThreadList
|
||||||
|
UNIMPLEMENTED, // ResumeThreadList
|
||||||
|
RESERVED, // reserved94
|
||||||
|
RESERVED, // reserved95
|
||||||
|
RESERVED, // reserved96
|
||||||
|
RESERVED, // reserved97
|
||||||
|
RESERVED, // reserved98
|
||||||
|
RESERVED, // reserved99
|
||||||
|
UNIMPLEMENTED, // GetAllStackTraces
|
||||||
|
UNIMPLEMENTED, // GetThreadListStackTraces
|
||||||
|
UNIMPLEMENTED, // GetThreadLocalStorage
|
||||||
|
UNIMPLEMENTED, // SetThreadLocalStorage
|
||||||
|
UNIMPLEMENTED, // GetStackTrace
|
||||||
|
RESERVED, // reserved105
|
||||||
|
UNIMPLEMENTED, // GetTag
|
||||||
|
UNIMPLEMENTED, // SetTag
|
||||||
|
UNIMPLEMENTED, // ForceGarbageCollection
|
||||||
|
UNIMPLEMENTED, // IterateOverObjectsReachable
|
||||||
|
UNIMPLEMENTED, // IterateOverReachableObjects
|
||||||
|
UNIMPLEMENTED, // IterateOverHeap
|
||||||
|
UNIMPLEMENTED, // IterateOverInstanceOfClass
|
||||||
|
RESERVED, // reserved113
|
||||||
|
UNIMPLEMENTED, // GetObjectsWithTags
|
||||||
|
RESERVED, // reserved115
|
||||||
|
RESERVED, // reserved116
|
||||||
|
RESERVED, // reserved117
|
||||||
|
RESERVED, // reserved118
|
||||||
|
RESERVED, // reserved119
|
||||||
|
UNIMPLEMENTED, // SetJNIFunctionTable
|
||||||
|
UNIMPLEMENTED, // GetJNIFunctionTable
|
||||||
|
UNIMPLEMENTED, // SetEventCallbacks
|
||||||
|
UNIMPLEMENTED, // GenerateEvents
|
||||||
|
UNIMPLEMENTED, // GetExtensionFunctions
|
||||||
|
UNIMPLEMENTED, // GetExtensionEvents
|
||||||
|
UNIMPLEMENTED, // SetExtensionEventCallback
|
||||||
|
UNIMPLEMENTED, // DisposeEnvironment
|
||||||
|
UNIMPLEMENTED, // GetErrorName
|
||||||
|
UNIMPLEMENTED, // GetJLocationFormat
|
||||||
|
UNIMPLEMENTED, // GetSystemProperties
|
||||||
|
UNIMPLEMENTED, // GetSystemProperty
|
||||||
|
UNIMPLEMENTED, // SetSystemProperty
|
||||||
|
UNIMPLEMENTED, // GetPhase
|
||||||
|
UNIMPLEMENTED, // GetCurrentThreadCpuTimerInfo
|
||||||
|
UNIMPLEMENTED, // GetCurrentThreadCpuTime
|
||||||
|
UNIMPLEMENTED, // GetThreadCpuTimerInfo
|
||||||
|
UNIMPLEMENTED, // GetThreadCpuTime
|
||||||
|
UNIMPLEMENTED, // GetTimerInfo
|
||||||
|
UNIMPLEMENTED, // GetTime
|
||||||
|
UNIMPLEMENTED, // GetPotentialCapabilities
|
||||||
|
RESERVED, // reserved141
|
||||||
|
UNIMPLEMENTED, // AddCapabilities
|
||||||
|
UNIMPLEMENTED, // RelinquishCapabilities
|
||||||
|
UNIMPLEMENTED, // GetAvailableProcessors
|
||||||
|
RESERVED, // reserved145
|
||||||
|
RESERVED, // reserved146
|
||||||
|
UNIMPLEMENTED, // GetEnvironmentLocalStorage
|
||||||
|
UNIMPLEMENTED, // SetEnvironmentLocalStorage
|
||||||
|
UNIMPLEMENTED, // AddToBootstrapClassLoaderSearch
|
||||||
|
UNIMPLEMENTED, // SetVerboseFlag
|
||||||
|
RESERVED, // reserved151
|
||||||
|
RESERVED, // reserved152
|
||||||
|
RESERVED, // reserved153
|
||||||
|
UNIMPLEMENTED // GetObjectSize
|
||||||
|
};
|
||||||
|
|
||||||
|
_Jv_JVMTIEnv *
|
||||||
|
_Jv_GetJVMTIEnv (void)
|
||||||
|
{
|
||||||
|
_Jv_JVMTIEnv *env
|
||||||
|
= (_Jv_JVMTIEnv *) _Jv_MallocUnchecked (sizeof (_Jv_JVMTIEnv));
|
||||||
|
env->p = &_Jv_JVMTI_Interface;
|
||||||
|
return env;
|
||||||
|
}
|
Loading…
Reference in New Issue