--- a/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/ClassLoaderStats.java Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/agent/src/share/classes/sun/jvm/hotspot/tools/ClassLoaderStats.java Fri Feb 07 09:41:36 2014 -0800
@@ -103,11 +103,12 @@
}
SystemDictionary dict = VM.getVM().getSystemDictionary();
- dict.classesDo(new SystemDictionary.ClassAndLoaderVisitor() {
- public void visit(Klass k, Oop loader) {
+ dict.classesDo(new SystemDictionary.ClassVisitor() {
+ public void visit(Klass k) {
if (! (k instanceof InstanceKlass)) {
return;
}
+ Oop loader = ((InstanceKlass) k).getClassLoader();
LoaderData ld = (loader != null) ? (LoaderData)loaderMap.get(loader)
: bootstrapLoaderData;
if (ld != null) {
--- a/hotspot/make/Makefile Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/Makefile Fri Feb 07 09:41:36 2014 -0800
@@ -557,11 +557,11 @@
# Testing the built JVM
-RUN_JVM=JAVA_HOME=$(JDK_IMPORT_PATH) $(JDK_IMPORT_PATH)/bin/java -d$(ARCH_DATA_MODEL) -Dsun.java.launcher=gamma
+RUN_JVM=JAVA_HOME=$(JDK_IMPORT_PATH) $(JDK_IMPORT_PATH)/bin/java -d$(ARCH_DATA_MODEL) -XXaltjvm=$(ALTJVM_DIR) -Dsun.java.launcher.is_altjvm=true
generic_test:
@$(ECHO) "Running with: $(ALTJVM_DIR)"
- @$(RUN_JVM) -XXaltjvm=$(ALTJVM_DIR) -Xinternalversion
- @$(RUN_JVM) -XXaltjvm=$(ALTJVM_DIR) -showversion -help
+ @$(RUN_JVM) -Xinternalversion
+ @$(RUN_JVM) -showversion -help
# C2 test targets
test_product test_optimized test_fastdebug test_debug:
--- a/hotspot/make/bsd/makefiles/dtrace.make Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/bsd/makefiles/dtrace.make Fri Feb 07 09:41:36 2014 -0800
@@ -53,6 +53,7 @@
GENOFFS = generate$(JVMOFFS)
DTRACE_SRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/dtrace
+DTRACE_COMMON_SRCDIR = $(GAMMADIR)/src/os/posix/dtrace
DTRACE = dtrace
DTRACE.o = $(DTRACE).o
@@ -262,14 +263,14 @@
$(DtraceOutDir):
mkdir $(DtraceOutDir)
-$(DtraceOutDir)/hotspot.h: $(DTRACE_SRCDIR)/hotspot.d | $(DtraceOutDir)
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_SRCDIR)/hotspot.d
+$(DtraceOutDir)/hotspot.h: $(DTRACE_COMMON_SRCDIR)/hotspot.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hotspot.d
-$(DtraceOutDir)/hotspot_jni.h: $(DTRACE_SRCDIR)/hotspot_jni.d | $(DtraceOutDir)
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_SRCDIR)/hotspot_jni.d
+$(DtraceOutDir)/hotspot_jni.h: $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d
-$(DtraceOutDir)/hs_private.h: $(DTRACE_SRCDIR)/hs_private.d | $(DtraceOutDir)
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_SRCDIR)/hs_private.d
+$(DtraceOutDir)/hs_private.h: $(DTRACE_COMMON_SRCDIR)/hs_private.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hs_private.d
dtrace_gen_headers: $(DtraceOutDir)/hotspot.h $(DtraceOutDir)/hotspot_jni.h $(DtraceOutDir)/hs_private.h
--- a/hotspot/make/hotspot.script Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/hotspot.script Fri Feb 07 09:41:36 2014 -0800
@@ -49,7 +49,7 @@
GDB=gdb
fi
-# This is the name of the gdb binary to use
+# This is the name of the dbx binary to use
if [ ! "$DBX" ]
then
DBX=dbx
@@ -68,9 +68,16 @@
# End of user changeable parameters -----------------------------------------
#
+OS=`uname -s`
+
# Make sure the paths are fully specified, i.e. they must begin with /.
REL_MYDIR=`dirname $0`
MYDIR=`cd $REL_MYDIR && pwd`
+case "$OS" in
+CYGWIN*)
+ MYDIR=`cygpath -m "$MYDIR"`
+ ;;
+esac
#
# Look whether the user wants to run inside gdb
@@ -102,8 +109,17 @@
JDK=@@JDK_IMPORT_PATH@@
fi
-if [ "${JDK}" = "" ]; then
- echo "Failed to find JDK. Either ALT_JAVA_HOME is not set or JDK_IMPORT_PATH is empty."
+if [ "${JDK}" != "" ]; then
+ case "$OS" in
+ CYGWIN*)
+ JDK=`cygpath -m "$JDK"`
+ ;;
+ esac
+
+else
+ echo "Failed to find JDK." \
+ "Either ALT_JAVA_HOME is not set or JDK_IMPORT_PATH is empty."
+ exit 1
fi
# We will set the LD_LIBRARY_PATH as follows:
@@ -120,7 +136,6 @@
# Set up a suitable LD_LIBRARY_PATH or DYLD_LIBRARY_PATH
-OS=`uname -s`
if [ "${OS}" = "Darwin" ]
then
if [ -z "$DYLD_LIBRARY_PATH" ]
@@ -141,7 +156,7 @@
export LD_LIBRARY_PATH
fi
-JPARMS="-Dsun.java.launcher=gamma -XXaltjvm=$MYDIR $@ $JAVA_ARGS";
+JPARMS="-XXaltjvm=$MYDIR -Dsun.java.launcher.is_altjvm=true $@ $JAVA_ARGS";
# Locate the java launcher
LAUNCHER=$JDK/bin/java
@@ -152,6 +167,11 @@
GDBSRCDIR=$MYDIR
BASEDIR=`cd $MYDIR/../../.. && pwd`
+case "$OS" in
+CYGWIN*)
+ BASEDIR=`cygpath -m "$BASEDIR"`
+ ;;
+esac
init_gdb() {
# Create a gdb script in case we should run inside gdb
--- a/hotspot/make/linux/makefiles/buildtree.make Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/linux/makefiles/buildtree.make Fri Feb 07 09:41:36 2014 -0800
@@ -124,7 +124,7 @@
# For dependencies and recursive makes.
BUILDTREE_MAKE = $(GAMMADIR)/make/$(OS_FAMILY)/makefiles/buildtree.make
-BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make
+BUILDTREE_TARGETS = Makefile flags.make flags_vm.make vm.make adlc.make jvmti.make trace.make sa.make dtrace.make
BUILDTREE_VARS = GAMMADIR=$(GAMMADIR) OS_FAMILY=$(OS_FAMILY) \
SRCARCH=$(SRCARCH) BUILDARCH=$(BUILDARCH) LIBARCH=$(LIBARCH) VARIANT=$(VARIANT)
@@ -361,6 +361,16 @@
echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
) > $@
+dtrace.make: $(BUILDTREE_MAKE)
+ @echo Creating $@ ...
+ $(QUIETLY) ( \
+ $(BUILDTREE_COMMENT); \
+ echo; \
+ echo include flags.make; \
+ echo; \
+ echo "include \$$(GAMMADIR)/make/$(OS_FAMILY)/makefiles/$(@F)"; \
+ ) > $@
+
FORCE:
.PHONY: all FORCE
--- a/hotspot/make/linux/makefiles/dtrace.make Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/linux/makefiles/dtrace.make Fri Feb 07 09:41:36 2014 -0800
@@ -42,18 +42,39 @@
else
SDT_H_FILE = /usr/include/sys/sdt.h
endif
+
DTRACE_ENABLED = $(shell test -f $(SDT_H_FILE) && echo $(SDT_H_FILE))
REASON = "$(SDT_H_FILE) not found"
+endif # GCC version
+endif # OPENJDK
+
+
+DTRACE_COMMON_SRCDIR = $(GAMMADIR)/src/os/posix/dtrace
+DTRACE_PROG = dtrace
+DtraceOutDir = $(GENERATED)/dtracefiles
+
+$(DtraceOutDir):
+ mkdir $(DtraceOutDir)
+
+$(DtraceOutDir)/hotspot.h: $(DTRACE_COMMON_SRCDIR)/hotspot.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hotspot.d
+
+$(DtraceOutDir)/hotspot_jni.h: $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d
+
+$(DtraceOutDir)/hs_private.h: $(DTRACE_COMMON_SRCDIR)/hs_private.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hs_private.d
+
ifneq ($(DTRACE_ENABLED),)
- CFLAGS += -DDTRACE_ENABLED
-endif
-
-endif
+CFLAGS += -DDTRACE_ENABLED
+dtrace_gen_headers: $(DtraceOutDir)/hotspot.h $(DtraceOutDir)/hotspot_jni.h $(DtraceOutDir)/hs_private.h
+else
+dtrace_gen_headers:
+ $(QUIETLY) echo "**NOTICE** Dtrace support disabled: $(REASON)"
endif
# Phony target used in vm.make build target to check whether enabled.
-.PHONY: dtraceCheck
ifeq ($(DTRACE_ENABLED),)
dtraceCheck:
$(QUIETLY) echo "**NOTICE** Dtrace support disabled: $(REASON)"
@@ -61,5 +82,7 @@
dtraceCheck:
endif
+.PHONY: dtrace_gen_headers dtraceCheck
+
# It doesn't support HAVE_DTRACE_H though.
--- a/hotspot/make/linux/makefiles/top.make Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/linux/makefiles/top.make Fri Feb 07 09:41:36 2014 -0800
@@ -80,7 +80,7 @@
@echo All done.
# This is an explicit dependency for the sake of parallel makes.
-vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff sa_stuff
+vm_build_preliminaries: checks $(Cached_plat) $(AD_Files_If_Required) trace_stuff jvmti_stuff sa_stuff dtrace_stuff
@# We need a null action here, so implicit rules don't get consulted.
$(Cached_plat): $(Plat_File)
@@ -102,6 +102,9 @@
sa_stuff:
@$(MAKE) -f sa.make $(MFLAGS-adjusted)
+dtrace_stuff: $(Cached_plat) $(adjust-mflags)
+ @$(MAKE) -f dtrace.make dtrace_gen_headers $(MFLAGS-adjusted) GENERATED=$(GENERATED)
+
# and the VM: must use other makefile with dependencies included
# We have to go to great lengths to get control over the -jN argument
--- a/hotspot/make/solaris/makefiles/dtrace.make Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/make/solaris/makefiles/dtrace.make Fri Feb 07 09:41:36 2014 -0800
@@ -55,6 +55,7 @@
GENOFFS = generate$(JVMOFFS)
DTRACE_SRCDIR = $(GAMMADIR)/src/os/$(Platform_os_family)/dtrace
+DTRACE_COMMON_SRCDIR = $(GAMMADIR)/src/os/posix/dtrace
DTRACE = dtrace
DTRACE.o = $(DTRACE).o
@@ -253,8 +254,8 @@
endif
endif
-$(DTRACE).d: $(DTRACE_SRCDIR)/hotspot.d $(DTRACE_SRCDIR)/hotspot_jni.d \
- $(DTRACE_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
+$(DTRACE).d: $(DTRACE_COMMON_SRCDIR)/hotspot.d $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d \
+ $(DTRACE_COMMON_SRCDIR)/hs_private.d $(DTRACE_SRCDIR)/jhelper.d
$(QUIETLY) cat $^ > $@
DTraced_Files = ciEnv.o \
@@ -332,14 +333,14 @@
$(DtraceOutDir):
mkdir $(DtraceOutDir)
-$(DtraceOutDir)/hotspot.h: $(DTRACE_SRCDIR)/hotspot.d | $(DtraceOutDir)
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_SRCDIR)/hotspot.d
+$(DtraceOutDir)/hotspot.h: $(DTRACE_COMMON_SRCDIR)/hotspot.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hotspot.d
-$(DtraceOutDir)/hotspot_jni.h: $(DTRACE_SRCDIR)/hotspot_jni.d | $(DtraceOutDir)
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_SRCDIR)/hotspot_jni.d
+$(DtraceOutDir)/hotspot_jni.h: $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hotspot_jni.d
-$(DtraceOutDir)/hs_private.h: $(DTRACE_SRCDIR)/hs_private.d | $(DtraceOutDir)
- $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_SRCDIR)/hs_private.d
+$(DtraceOutDir)/hs_private.h: $(DTRACE_COMMON_SRCDIR)/hs_private.d | $(DtraceOutDir)
+ $(QUIETLY) $(DTRACE_PROG) $(DTRACE_OPTS) -C -I. -h -o $@ -s $(DTRACE_COMMON_SRCDIR)/hs_private.d
dtrace_gen_headers: $(DtraceOutDir)/hotspot.h $(DtraceOutDir)/hotspot_jni.h $(DtraceOutDir)/hs_private.h
--- a/hotspot/src/os/bsd/dtrace/hotspot.d Wed Feb 05 08:57:33 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-provider hotspot {
- probe class__loaded(char*, uintptr_t, void*, uintptr_t);
- probe class__unloaded(char*, uintptr_t, void*, uintptr_t);
- probe class__initialization__required(char*, uintptr_t, void*, intptr_t);
- probe class__initialization__recursive(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__concurrent(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__erroneous(char*, uintptr_t, void*, intptr_t, int);
- probe class__initialization__super__failed(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__clinit(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__error(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__end(char*, uintptr_t, void*, intptr_t,int);
- probe vm__init__begin();
- probe vm__init__end();
- probe vm__shutdown();
- probe vmops__request(char*, uintptr_t, int);
- probe vmops__begin(char*, uintptr_t, int);
- probe vmops__end(char*, uintptr_t, int);
- probe gc__begin(uintptr_t);
- probe gc__end();
- probe mem__pool__gc__begin(
- char*, uintptr_t, char*, uintptr_t,
- uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe mem__pool__gc__end(
- char*, uintptr_t, char*, uintptr_t,
- uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe thread__start(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe thread__stop(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe thread__sleep__begin(long long);
- probe thread__sleep__end(int);
- probe thread__yield();
- probe thread__park__begin(uintptr_t, int, long long);
- probe thread__park__end(uintptr_t);
- probe thread__unpark(uintptr_t);
- probe method__compile__begin(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
- probe method__compile__end(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t,
- char*, uintptr_t, uintptr_t);
- probe compiled__method__load(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, void*, uintptr_t);
- probe compiled__method__unload(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
- probe monitor__contended__enter(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__contended__entered(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__contended__exit(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__wait(uintptr_t, uintptr_t, char*, uintptr_t, uintptr_t);
- probe monitor__waited(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__notify(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__notifyAll(uintptr_t, uintptr_t, char*, uintptr_t);
-
- probe object__alloc(int, char*, uintptr_t, uintptr_t);
- probe method__entry(
- int, char*, int, char*, int, char*, int);
- probe method__return(
- int, char*, int, char*, int, char*, int);
-};
-
-#pragma D attributes Evolving/Evolving/Common provider hotspot provider
-#pragma D attributes Private/Private/Unknown provider hotspot module
-#pragma D attributes Private/Private/Unknown provider hotspot function
-#pragma D attributes Evolving/Evolving/Common provider hotspot name
-#pragma D attributes Evolving/Evolving/Common provider hotspot args
--- a/hotspot/src/os/bsd/dtrace/hotspot_jni.d Wed Feb 05 08:57:33 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,506 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-provider hotspot_jni {
- probe AllocObject__entry(void*, void*);
- probe AllocObject__return(void*);
- probe AttachCurrentThreadAsDaemon__entry(void*, void**, void*);
- probe AttachCurrentThreadAsDaemon__return(uint32_t);
- probe AttachCurrentThread__entry(void*, void**, void*);
- probe AttachCurrentThread__return(uint32_t);
- probe CallBooleanMethodA__entry(void*, void*, uintptr_t);
- probe CallBooleanMethodA__return(uintptr_t);
- probe CallBooleanMethod__entry(void*, void*, uintptr_t);
- probe CallBooleanMethod__return(uintptr_t);
- probe CallBooleanMethodV__entry(void*, void*, uintptr_t);
- probe CallBooleanMethodV__return(uintptr_t);
- probe CallByteMethodA__entry(void*, void*, uintptr_t);
- probe CallByteMethodA__return(char);
- probe CallByteMethod__entry(void*, void*, uintptr_t);
- probe CallByteMethod__return(char);
- probe CallByteMethodV__entry(void*, void*, uintptr_t);
- probe CallByteMethodV__return(char);
- probe CallCharMethodA__entry(void*, void*, uintptr_t);
- probe CallCharMethodA__return(uint16_t);
- probe CallCharMethod__entry(void*, void*, uintptr_t);
- probe CallCharMethod__return(uint16_t);
- probe CallCharMethodV__entry(void*, void*, uintptr_t);
- probe CallCharMethodV__return(uint16_t);
- probe CallDoubleMethodA__entry(void*, void*, uintptr_t);
- probe CallDoubleMethodA__return();
- probe CallDoubleMethod__entry(void*, void*, uintptr_t);
- probe CallDoubleMethod__return();
- probe CallDoubleMethodV__entry(void*, void*, uintptr_t);
- probe CallDoubleMethodV__return();
- probe CallFloatMethodA__entry(void*, void*, uintptr_t);
- probe CallFloatMethodA__return();
- probe CallFloatMethod__entry(void*, void*, uintptr_t);
- probe CallFloatMethod__return();
- probe CallFloatMethodV__entry(void*, void*, uintptr_t);
- probe CallFloatMethodV__return();
- probe CallIntMethodA__entry(void*, void*, uintptr_t);
- probe CallIntMethodA__return(uint32_t);
- probe CallIntMethod__entry(void*, void*, uintptr_t);
- probe CallIntMethod__return(uint32_t);
- probe CallIntMethodV__entry(void*, void*, uintptr_t);
- probe CallIntMethodV__return(uint32_t);
- probe CallLongMethodA__entry(void*, void*, uintptr_t);
- probe CallLongMethodA__return(uintptr_t);
- probe CallLongMethod__entry(void*, void*, uintptr_t);
- probe CallLongMethod__return(uintptr_t);
- probe CallLongMethodV__entry(void*, void*, uintptr_t);
- probe CallLongMethodV__return(uintptr_t);
- probe CallNonvirtualBooleanMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualBooleanMethodA__return(uintptr_t);
- probe CallNonvirtualBooleanMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualBooleanMethod__return(uintptr_t);
- probe CallNonvirtualBooleanMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualBooleanMethodV__return(uintptr_t);
- probe CallNonvirtualByteMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualByteMethodA__return(char);
- probe CallNonvirtualByteMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualByteMethod__return(char);
- probe CallNonvirtualByteMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualByteMethodV__return(char);
- probe CallNonvirtualCharMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualCharMethodA__return(uint16_t);
- probe CallNonvirtualCharMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualCharMethod__return(uint16_t);
- probe CallNonvirtualCharMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualCharMethodV__return(uint16_t);
- probe CallNonvirtualDoubleMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualDoubleMethodA__return();
- probe CallNonvirtualDoubleMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualDoubleMethod__return();
- probe CallNonvirtualDoubleMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualDoubleMethodV__return();
- probe CallNonvirtualFloatMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualFloatMethodA__return();
- probe CallNonvirtualFloatMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualFloatMethod__return();
- probe CallNonvirtualFloatMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualFloatMethodV__return();
- probe CallNonvirtualIntMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualIntMethodA__return(uint32_t);
- probe CallNonvirtualIntMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualIntMethod__return(uint32_t);
- probe CallNonvirtualIntMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualIntMethodV__return(uint32_t);
- probe CallNonvirtualLongMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualLongMethodA__return(uintptr_t);
- probe CallNonvirtualLongMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualLongMethod__return(uintptr_t);
- probe CallNonvirtualLongMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualLongMethodV__return(uintptr_t);
- probe CallNonvirtualObjectMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualObjectMethodA__return(void*);
- probe CallNonvirtualObjectMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualObjectMethod__return(void*);
- probe CallNonvirtualObjectMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualObjectMethodV__return(void*);
- probe CallNonvirtualShortMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualShortMethodA__return(uint16_t);
- probe CallNonvirtualShortMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualShortMethod__return(uint16_t);
- probe CallNonvirtualShortMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualShortMethodV__return(uint16_t);
- probe CallNonvirtualVoidMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualVoidMethodA__return();
- probe CallNonvirtualVoidMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualVoidMethod__return();
- probe CallNonvirtualVoidMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualVoidMethodV__return();
- probe CallObjectMethodA__entry(void*, void*, uintptr_t);
- probe CallObjectMethodA__return(void*);
- probe CallObjectMethod__entry(void*, void*, uintptr_t);
- probe CallObjectMethod__return(void*);
- probe CallObjectMethodV__entry(void*, void*, uintptr_t);
- probe CallObjectMethodV__return(void*);
- probe CallShortMethodA__entry(void*, void*, uintptr_t);
- probe CallShortMethodA__return(uint16_t);
- probe CallShortMethod__entry(void*, void*, uintptr_t);
- probe CallShortMethod__return(uint16_t);
- probe CallShortMethodV__entry(void*, void*, uintptr_t);
- probe CallShortMethodV__return(uint16_t);
- probe CallStaticBooleanMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticBooleanMethodA__return(uintptr_t);
- probe CallStaticBooleanMethod__entry(void*, void*, uintptr_t);
- probe CallStaticBooleanMethod__return(uintptr_t);
- probe CallStaticBooleanMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticBooleanMethodV__return(uintptr_t);
- probe CallStaticByteMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticByteMethodA__return(char);
- probe CallStaticByteMethod__entry(void*, void*, uintptr_t);
- probe CallStaticByteMethod__return(char);
- probe CallStaticByteMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticByteMethodV__return(char);
- probe CallStaticCharMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticCharMethodA__return(uint16_t);
- probe CallStaticCharMethod__entry(void*, void*, uintptr_t);
- probe CallStaticCharMethod__return(uint16_t);
- probe CallStaticCharMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticCharMethodV__return(uint16_t);
- probe CallStaticDoubleMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticDoubleMethodA__return();
- probe CallStaticDoubleMethod__entry(void*, void*, uintptr_t);
- probe CallStaticDoubleMethod__return();
- probe CallStaticDoubleMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticDoubleMethodV__return();
- probe CallStaticFloatMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticFloatMethodA__return();
- probe CallStaticFloatMethod__entry(void*, void*, uintptr_t);
- probe CallStaticFloatMethod__return();
- probe CallStaticFloatMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticFloatMethodV__return();
- probe CallStaticIntMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticIntMethodA__return(uint32_t);
- probe CallStaticIntMethod__entry(void*, void*, uintptr_t);
- probe CallStaticIntMethod__return(uint32_t);
- probe CallStaticIntMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticIntMethodV__return(uint32_t);
- probe CallStaticLongMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticLongMethodA__return(uintptr_t);
- probe CallStaticLongMethod__entry(void*, void*, uintptr_t);
- probe CallStaticLongMethod__return(uintptr_t);
- probe CallStaticLongMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticLongMethodV__return(uintptr_t);
- probe CallStaticObjectMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticObjectMethodA__return(void*);
- probe CallStaticObjectMethod__entry(void*, void*, uintptr_t);
- probe CallStaticObjectMethod__return(void*);
- probe CallStaticObjectMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticObjectMethodV__return(void*);
- probe CallStaticShortMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticShortMethodA__return(uint16_t);
- probe CallStaticShortMethod__entry(void*, void*, uintptr_t);
- probe CallStaticShortMethod__return(uint16_t);
- probe CallStaticShortMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticShortMethodV__return(uint16_t);
- probe CallStaticVoidMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticVoidMethodA__return();
- probe CallStaticVoidMethod__entry(void*, void*, uintptr_t);
- probe CallStaticVoidMethod__return();
- probe CallStaticVoidMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticVoidMethodV__return();
- probe CallVoidMethodA__entry(void*, void*, uintptr_t);
- probe CallVoidMethodA__return();
- probe CallVoidMethod__entry(void*, void*, uintptr_t);
- probe CallVoidMethod__return();
- probe CallVoidMethodV__entry(void*, void*, uintptr_t);
- probe CallVoidMethodV__return();
- probe CreateJavaVM__entry(void**, void**, void*);
- probe CreateJavaVM__return(uint32_t);
- probe DefineClass__entry(void*, const char*, void*, char*, uintptr_t);
- probe DefineClass__return(void*);
- probe DeleteGlobalRef__entry(void*, void*);
- probe DeleteGlobalRef__return();
- probe DeleteLocalRef__entry(void*, void*);
- probe DeleteLocalRef__return();
- probe DeleteWeakGlobalRef__entry(void*, void*);
- probe DeleteWeakGlobalRef__return();
- probe DestroyJavaVM__entry(void*);
- probe DestroyJavaVM__return(uint32_t);
- probe DetachCurrentThread__entry(void*);
- probe DetachCurrentThread__return(uint32_t);
- probe EnsureLocalCapacity__entry(void*, uint32_t);
- probe EnsureLocalCapacity__return(uint32_t);
- probe ExceptionCheck__entry(void*);
- probe ExceptionCheck__return(uintptr_t);
- probe ExceptionClear__entry(void*);
- probe ExceptionClear__return();
- probe ExceptionDescribe__entry(void*);
- probe ExceptionDescribe__return();
- probe ExceptionOccurred__entry(void*);
- probe ExceptionOccurred__return(void*);
- probe FatalError__entry(void* env, const char*);
- probe FindClass__entry(void*, const char*);
- probe FindClass__return(void*);
- probe FromReflectedField__entry(void*, void*);
- probe FromReflectedField__return(uintptr_t);
- probe FromReflectedMethod__entry(void*, void*);
- probe FromReflectedMethod__return(uintptr_t);
- probe GetArrayLength__entry(void*, void*);
- probe GetArrayLength__return(uintptr_t);
- probe GetBooleanArrayElements__entry(void*, void*, uintptr_t*);
- probe GetBooleanArrayElements__return(uintptr_t*);
- probe GetBooleanArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uintptr_t*);
- probe GetBooleanArrayRegion__return();
- probe GetBooleanField__entry(void*, void*, uintptr_t);
- probe GetBooleanField__return(uintptr_t);
- probe GetByteArrayElements__entry(void*, void*, uintptr_t*);
- probe GetByteArrayElements__return(char*);
- probe GetByteArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, char*);
- probe GetByteArrayRegion__return();
- probe GetByteField__entry(void*, void*, uintptr_t);
- probe GetByteField__return(char);
- probe GetCharArrayElements__entry(void*, void*, uintptr_t*);
- probe GetCharArrayElements__return(uint16_t*);
- probe GetCharArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
- probe GetCharArrayRegion__return();
- probe GetCharField__entry(void*, void*, uintptr_t);
- probe GetCharField__return(uint16_t);
- probe GetCreatedJavaVMs__entry(void**, uintptr_t, uintptr_t*);
- probe GetCreatedJavaVMs__return(uintptr_t);
- probe GetDefaultJavaVMInitArgs__entry(void*);
- probe GetDefaultJavaVMInitArgs__return(uint32_t);
- probe GetDirectBufferAddress__entry(void*, void*);
- probe GetDirectBufferAddress__return(void*);
- probe GetDirectBufferCapacity__entry(void*, void*);
- probe GetDirectBufferCapacity__return(uintptr_t);
- probe GetDoubleArrayElements__entry(void*, void*, uintptr_t*);
- probe GetDoubleArrayElements__return(double*);
- probe GetDoubleArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, double*);
- probe GetDoubleArrayRegion__return();
- probe GetDoubleField__entry(void*, void*, uintptr_t);
- probe GetDoubleField__return();
- probe GetEnv__entry(void*, void*, uint32_t);
- probe GetEnv__return(uint32_t);
- probe GetFieldID__entry(void*, void*, const char*, const char*);
- probe GetFieldID__return(uintptr_t);
- probe GetFloatArrayElements__entry(void*, void*, uintptr_t*);
- probe GetFloatArrayElements__return(float*);
- probe GetFloatArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, float*);
- probe GetFloatArrayRegion__return();
- probe GetFloatField__entry(void*, void*, uintptr_t);
- probe GetFloatField__return();
- probe GetIntArrayElements__entry(void*, void*, uintptr_t*);
- probe GetIntArrayElements__return(uint32_t*);
- probe GetIntArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint32_t*);
- probe GetIntArrayRegion__return();
- probe GetIntField__entry(void*, void*, uintptr_t);
- probe GetIntField__return(uint32_t);
- probe GetJavaVM__entry(void*, void**);
- probe GetJavaVM__return(uint32_t);
- probe GetLongArrayElements__entry(void*, void*, uintptr_t*);
- probe GetLongArrayElements__return(uintptr_t*);
- probe GetLongArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uintptr_t*);
- probe GetLongArrayRegion__return();
- probe GetLongField__entry(void*, void*, uintptr_t);
- probe GetLongField__return(uintptr_t);
- probe GetMethodID__entry(void*, void*, const char*, const char*);
- probe GetMethodID__return(uintptr_t);
- probe GetObjectArrayElement__entry(void*, void*, uintptr_t);
- probe GetObjectArrayElement__return(void*);
- probe GetObjectClass__entry(void*, void*);
- probe GetObjectClass__return(void*);
- probe GetObjectField__entry(void*, void*, uintptr_t);
- probe GetObjectField__return(void*);
- probe GetObjectRefType__entry(void*, void*);
- probe GetObjectRefType__return(void*);
- probe GetPrimitiveArrayCritical__entry(void*, void*, uintptr_t*);
- probe GetPrimitiveArrayCritical__return(void*);
- probe GetShortArrayElements__entry(void*, void*, uintptr_t*);
- probe GetShortArrayElements__return(uint16_t*);
- probe GetShortArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
- probe GetShortArrayRegion__return();
- probe GetShortField__entry(void*, void*, uintptr_t);
- probe GetShortField__return(uint16_t);
- probe GetStaticBooleanField__entry(void*, void*, uintptr_t);
- probe GetStaticBooleanField__return(uintptr_t);
- probe GetStaticByteField__entry(void*, void*, uintptr_t);
- probe GetStaticByteField__return(char);
- probe GetStaticCharField__entry(void*, void*, uintptr_t);
- probe GetStaticCharField__return(uint16_t);
- probe GetStaticDoubleField__entry(void*, void*, uintptr_t);
- probe GetStaticDoubleField__return();
- probe GetStaticFieldID__entry(void*, void*, const char*, const char*);
- probe GetStaticFieldID__return(uintptr_t);
- probe GetStaticFloatField__entry(void*, void*, uintptr_t);
- probe GetStaticFloatField__return();
- probe GetStaticIntField__entry(void*, void*, uintptr_t);
- probe GetStaticIntField__return(uint32_t);
- probe GetStaticLongField__entry(void*, void*, uintptr_t);
- probe GetStaticLongField__return(uintptr_t);
- probe GetStaticMethodID__entry(void*, void*, const char*, const char*);
- probe GetStaticMethodID__return(uintptr_t);
- probe GetStaticObjectField__entry(void*, void*, uintptr_t);
- probe GetStaticObjectField__return(void*);
- probe GetStaticShortField__entry(void*, void*, uintptr_t);
- probe GetStaticShortField__return(uint16_t);
- probe GetStringChars__entry(void*, void*, uintptr_t*);
- probe GetStringChars__return(const uint16_t*);
- probe GetStringCritical__entry(void*, void*, uintptr_t*);
- probe GetStringCritical__return(const uint16_t*);
- probe GetStringLength__entry(void*, void*);
- probe GetStringLength__return(uintptr_t);
- probe GetStringRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
- probe GetStringRegion__return();
- probe GetStringUTFChars__entry(void*, void*, uintptr_t*);
- probe GetStringUTFChars__return(const char*);
- probe GetStringUTFLength__entry(void*, void*);
- probe GetStringUTFLength__return(uintptr_t);
- probe GetStringUTFRegion__entry(void*, void*, uintptr_t, uintptr_t, char*);
- probe GetStringUTFRegion__return();
- probe GetSuperclass__entry(void*, void*);
- probe GetSuperclass__return(void*);
- probe GetVersion__entry(void*);
- probe GetVersion__return(uint32_t);
- probe IsAssignableFrom__entry(void*, void*, void*);
- probe IsAssignableFrom__return(uintptr_t);
- probe IsInstanceOf__entry(void*, void*, void*);
- probe IsInstanceOf__return(uintptr_t);
- probe IsSameObject__entry(void*, void*, void*);
- probe IsSameObject__return(uintptr_t);
- probe MonitorEnter__entry(void*, void*);
- probe MonitorEnter__return(uint32_t);
- probe MonitorExit__entry(void*, void*);
- probe MonitorExit__return(uint32_t);
- probe NewBooleanArray__entry(void*, uintptr_t);
- probe NewBooleanArray__return(void*);
- probe NewByteArray__entry(void*, uintptr_t);
- probe NewByteArray__return(void*);
- probe NewCharArray__entry(void*, uintptr_t);
- probe NewCharArray__return(void*);
- probe NewDirectByteBuffer__entry(void*, void*, uintptr_t);
- probe NewDirectByteBuffer__return(void*);
- probe NewDoubleArray__entry(void*, uintptr_t);
- probe NewDoubleArray__return(void*);
- probe NewFloatArray__entry(void*, uintptr_t);
- probe NewFloatArray__return(void*);
- probe NewGlobalRef__entry(void*, void*);
- probe NewGlobalRef__return(void*);
- probe NewIntArray__entry(void*, uintptr_t);
- probe NewIntArray__return(void*);
- probe NewLocalRef__entry(void*, void*);
- probe NewLocalRef__return(void*);
- probe NewLongArray__entry(void*, uintptr_t);
- probe NewLongArray__return(void*);
- probe NewObjectA__entry(void*, void*, uintptr_t);
- probe NewObjectA__return(void*);
- probe NewObjectArray__entry(void*, uintptr_t, void*, void*);
- probe NewObjectArray__return(void*);
- probe NewObject__entry(void*, void*, uintptr_t);
- probe NewObject__return(void*);
- probe NewObjectV__entry(void*, void*, uintptr_t);
- probe NewObjectV__return(void*);
- probe NewShortArray__entry(void*, uintptr_t);
- probe NewShortArray__return(void*);
- probe NewString__entry(void*, const uint16_t*, uintptr_t);
- probe NewString__return(void*);
- probe NewStringUTF__entry(void*, const char*);
- probe NewStringUTF__return(void*);
- probe NewWeakGlobalRef__entry(void*, void*);
- probe NewWeakGlobalRef__return(void*);
- probe PopLocalFrame__entry(void*, void*);
- probe PopLocalFrame__return(void*);
- probe PushLocalFrame__entry(void*, uint32_t);
- probe PushLocalFrame__return(uint32_t);
- probe RegisterNatives__entry(void*, void*, const void*, uint32_t);
- probe RegisterNatives__return(uint32_t);
- probe ReleaseBooleanArrayElements__entry(void*, void*, uintptr_t*, uint32_t);
- probe ReleaseBooleanArrayElements__return();
- probe ReleaseByteArrayElements__entry(void*, void*, char*, uint32_t);
- probe ReleaseByteArrayElements__return();
- probe ReleaseCharArrayElements__entry(void*, void*, uint16_t*, uint32_t);
- probe ReleaseCharArrayElements__return();
- probe ReleaseDoubleArrayElements__entry(void*, void*, double*, uint32_t);
- probe ReleaseDoubleArrayElements__return();
- probe ReleaseFloatArrayElements__entry(void*, void*, float*, uint32_t);
- probe ReleaseFloatArrayElements__return();
- probe ReleaseIntArrayElements__entry(void*, void*, uint32_t*, uint32_t);
- probe ReleaseIntArrayElements__return();
- probe ReleaseLongArrayElements__entry(void*, void*, uintptr_t*, uint32_t);
- probe ReleaseLongArrayElements__return();
- probe ReleasePrimitiveArrayCritical__entry(void*, void*, void*, uint32_t);
- probe ReleasePrimitiveArrayCritical__return();
- probe ReleaseShortArrayElements__entry(void*, void*, uint16_t*, uint32_t);
- probe ReleaseShortArrayElements__return();
- probe ReleaseStringChars__entry(void*, void*, const uint16_t*);
- probe ReleaseStringChars__return();
- probe ReleaseStringCritical__entry(void*, void*, const uint16_t*);
- probe ReleaseStringCritical__return();
- probe ReleaseStringUTFChars__entry(void*, void*, const char*);
- probe ReleaseStringUTFChars__return();
- probe SetBooleanArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uintptr_t*);
- probe SetBooleanArrayRegion__return();
- probe SetBooleanField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetBooleanField__return();
- probe SetByteArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const char*);
- probe SetByteArrayRegion__return();
- probe SetByteField__entry(void*, void*, uintptr_t, char);
- probe SetByteField__return();
- probe SetCharArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint16_t*);
- probe SetCharArrayRegion__return();
- probe SetCharField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetCharField__return();
- probe SetDoubleArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const double*);
- probe SetDoubleArrayRegion__return();
- probe SetDoubleField__entry(void*, void*, uintptr_t);
- probe SetDoubleField__return();
- probe SetFloatArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const float*);
- probe SetFloatArrayRegion__return();
- probe SetFloatField__entry(void*, void*, uintptr_t);
- probe SetFloatField__return();
- probe SetIntArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint32_t*);
- probe SetIntArrayRegion__return();
- probe SetIntField__entry(void*, void*, uintptr_t, uint32_t);
- probe SetIntField__return();
- probe SetLongArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uintptr_t*);
- probe SetLongArrayRegion__return();
- probe SetLongField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetLongField__return();
- probe SetObjectArrayElement__entry(void*, void*, uintptr_t, void*);
- probe SetObjectArrayElement__return();
- probe SetObjectField__entry(void*, void*, uintptr_t, void*);
- probe SetObjectField__return();
- probe SetShortArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint16_t*);
- probe SetShortArrayRegion__return();
- probe SetShortField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetShortField__return();
- probe SetStaticBooleanField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetStaticBooleanField__return();
- probe SetStaticByteField__entry(void*, void*, uintptr_t, char);
- probe SetStaticByteField__return();
- probe SetStaticCharField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetStaticCharField__return();
- probe SetStaticDoubleField__entry(void*, void*, uintptr_t);
- probe SetStaticDoubleField__return();
- probe SetStaticFloatField__entry(void*, void*, uintptr_t);
- probe SetStaticFloatField__return();
- probe SetStaticIntField__entry(void*, void*, uintptr_t, uint32_t);
- probe SetStaticIntField__return();
- probe SetStaticLongField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetStaticLongField__return();
- probe SetStaticObjectField__entry(void*, void*, uintptr_t, void*);
- probe SetStaticObjectField__return();
- probe SetStaticShortField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetStaticShortField__return();
- probe Throw__entry(void*, void*);
- probe Throw__return(intptr_t);
- probe ThrowNew__entry(void*, void*, const char*);
- probe ThrowNew__return(intptr_t);
- probe ToReflectedField__entry(void*, void*, uintptr_t, uintptr_t);
- probe ToReflectedField__return(void*);
- probe ToReflectedMethod__entry(void*, void*, uintptr_t, uintptr_t);
- probe ToReflectedMethod__return(void*);
- probe UnregisterNatives__entry(void*, void*);
- probe UnregisterNatives__return(uint32_t);
-};
-
-#pragma D attributes Standard/Standard/Common provider hotspot_jni provider
-#pragma D attributes Private/Private/Unknown provider hotspot_jni module
-#pragma D attributes Private/Private/Unknown provider hotspot_jni function
-#pragma D attributes Standard/Standard/Common provider hotspot_jni name
-#pragma D attributes Evolving/Evolving/Common provider hotspot_jni args
-
--- a/hotspot/src/os/bsd/dtrace/hs_private.d Wed Feb 05 08:57:33 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,40 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-provider hs_private {
- probe hashtable__new_entry(void*, uint32_t, uintptr_t, void*);
- probe safepoint__begin();
- probe safepoint__end();
- probe cms__initmark__begin();
- probe cms__initmark__end();
- probe cms__remark__begin();
- probe cms__remark__end();
-};
-
-#pragma D attributes Private/Private/Common provider hs_private provider
-#pragma D attributes Private/Private/Unknown provider hs_private module
-#pragma D attributes Private/Private/Unknown provider hs_private function
-#pragma D attributes Private/Private/Common provider hs_private name
-#pragma D attributes Private/Private/Common provider hs_private args
-
--- a/hotspot/src/os/bsd/vm/os_bsd.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/os/bsd/vm/os_bsd.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -1788,12 +1788,14 @@
if (rp == NULL)
return;
- if (Arguments::created_by_gamma_launcher()) {
- // Support for the gamma launcher. Typical value for buf is
- // "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm". If "/jre/lib/" appears at
- // the right place in the string, then assume we are installed in a JDK and
- // we're done. Otherwise, check for a JAVA_HOME environment variable and
- // construct a path to the JVM being overridden.
+ if (Arguments::sun_java_launcher_is_altjvm()) {
+ // Support for the java launcher's '-XXaltjvm=<path>' option. Typical
+ // value for buf is "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm.so"
+ // or "<JAVA_HOME>/jre/lib/<vmtype>/libjvm.dylib". If "/jre/lib/"
+ // appears at the right place in the string, then assume we are
+ // installed in a JDK and we're done. Otherwise, check for a
+ // JAVA_HOME environment variable and construct a path to the JVM
+ // being overridden.
const char *p = buf + strlen(buf) - 1;
for (int count = 0; p > buf && count < 5; ++count) {
--- a/hotspot/src/os/linux/vm/os_linux.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/os/linux/vm/os_linux.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -2371,13 +2371,14 @@
if (rp == NULL)
return;
- if (Arguments::created_by_gamma_launcher()) {
- // Support for the gamma launcher. Typical value for buf is
- // "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm.so". If "/jre/lib/" appears at
- // the right place in the string, then assume we are installed in a JDK and
- // we're done. Otherwise, check for a JAVA_HOME environment variable and fix
- // up the path so it looks like libjvm.so is installed there (append a
- // fake suffix hotspot/libjvm.so).
+ if (Arguments::sun_java_launcher_is_altjvm()) {
+ // Support for the java launcher's '-XXaltjvm=<path>' option. Typical
+ // value for buf is "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm.so".
+ // If "/jre/lib/" appears at the right place in the string, then
+ // assume we are installed in a JDK and we're done. Otherwise, check
+ // for a JAVA_HOME environment variable and fix up the path so it
+ // looks like libjvm.so is installed there (append a fake suffix
+ // hotspot/libjvm.so).
const char *p = buf + strlen(buf) - 1;
for (int count = 0; p > buf && count < 5; ++count) {
for (--p; p > buf && *p != '/'; --p)
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/os/posix/dtrace/hotspot.d Fri Feb 07 09:41:36 2014 -0800
@@ -0,0 +1,86 @@
+/*
+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+provider hotspot {
+ probe class__loaded(char*, uintptr_t, void*, uintptr_t);
+ probe class__unloaded(char*, uintptr_t, void*, uintptr_t);
+ probe class__initialization__required(char*, uintptr_t, void*, intptr_t);
+ probe class__initialization__recursive(char*, uintptr_t, void*, intptr_t,int);
+ probe class__initialization__concurrent(char*, uintptr_t, void*, intptr_t,int);
+ probe class__initialization__erroneous(char*, uintptr_t, void*, intptr_t, int);
+ probe class__initialization__super__failed(char*, uintptr_t, void*, intptr_t,int);
+ probe class__initialization__clinit(char*, uintptr_t, void*, intptr_t,int);
+ probe class__initialization__error(char*, uintptr_t, void*, intptr_t,int);
+ probe class__initialization__end(char*, uintptr_t, void*, intptr_t,int);
+ probe vm__init__begin();
+ probe vm__init__end();
+ probe vm__shutdown();
+ probe vmops__request(char*, uintptr_t, int);
+ probe vmops__begin(char*, uintptr_t, int);
+ probe vmops__end(char*, uintptr_t, int);
+ probe gc__begin(uintptr_t);
+ probe gc__end();
+ probe mem__pool__gc__begin(
+ char*, uintptr_t, char*, uintptr_t,
+ uintptr_t, uintptr_t, uintptr_t, uintptr_t);
+ probe mem__pool__gc__end(
+ char*, uintptr_t, char*, uintptr_t,
+ uintptr_t, uintptr_t, uintptr_t, uintptr_t);
+ probe thread__start(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
+ probe thread__stop(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
+ probe thread__sleep__begin(long long);
+ probe thread__sleep__end(int);
+ probe thread__yield();
+ probe thread__park__begin(uintptr_t, int, long long);
+ probe thread__park__end(uintptr_t);
+ probe thread__unpark(uintptr_t);
+ probe method__compile__begin(
+ char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
+ probe method__compile__end(
+ char*, uintptr_t, char*, uintptr_t, char*, uintptr_t,
+ char*, uintptr_t, uintptr_t);
+ probe compiled__method__load(
+ char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, void*, uintptr_t);
+ probe compiled__method__unload(
+ char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
+ probe monitor__contended__enter(uintptr_t, uintptr_t, char*, uintptr_t);
+ probe monitor__contended__entered(uintptr_t, uintptr_t, char*, uintptr_t);
+ probe monitor__contended__exit(uintptr_t, uintptr_t, char*, uintptr_t);
+ probe monitor__wait(uintptr_t, uintptr_t, char*, uintptr_t, uintptr_t);
+ probe monitor__waited(uintptr_t, uintptr_t, char*, uintptr_t);
+ probe monitor__notify(uintptr_t, uintptr_t, char*, uintptr_t);
+ probe monitor__notifyAll(uintptr_t, uintptr_t, char*, uintptr_t);
+
+ probe object__alloc(int, char*, uintptr_t, uintptr_t);
+ probe method__entry(
+ int, char*, int, char*, int, char*, int);
+ probe method__return(
+ int, char*, int, char*, int, char*, int);
+};
+
+#pragma D attributes Evolving/Evolving/Common provider hotspot provider
+#pragma D attributes Private/Private/Unknown provider hotspot module
+#pragma D attributes Private/Private/Unknown provider hotspot function
+#pragma D attributes Evolving/Evolving/Common provider hotspot name
+#pragma D attributes Evolving/Evolving/Common provider hotspot args
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/os/posix/dtrace/hotspot_jni.d Fri Feb 07 09:41:36 2014 -0800
@@ -0,0 +1,506 @@
+/*
+ * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+provider hotspot_jni {
+ probe AllocObject__entry(void*, void*);
+ probe AllocObject__return(void*);
+ probe AttachCurrentThreadAsDaemon__entry(void*, void**, void*);
+ probe AttachCurrentThreadAsDaemon__return(uint32_t);
+ probe AttachCurrentThread__entry(void*, void**, void*);
+ probe AttachCurrentThread__return(uint32_t);
+ probe CallBooleanMethodA__entry(void*, void*, uintptr_t);
+ probe CallBooleanMethodA__return(uintptr_t);
+ probe CallBooleanMethod__entry(void*, void*, uintptr_t);
+ probe CallBooleanMethod__return(uintptr_t);
+ probe CallBooleanMethodV__entry(void*, void*, uintptr_t);
+ probe CallBooleanMethodV__return(uintptr_t);
+ probe CallByteMethodA__entry(void*, void*, uintptr_t);
+ probe CallByteMethodA__return(char);
+ probe CallByteMethod__entry(void*, void*, uintptr_t);
+ probe CallByteMethod__return(char);
+ probe CallByteMethodV__entry(void*, void*, uintptr_t);
+ probe CallByteMethodV__return(char);
+ probe CallCharMethodA__entry(void*, void*, uintptr_t);
+ probe CallCharMethodA__return(uint16_t);
+ probe CallCharMethod__entry(void*, void*, uintptr_t);
+ probe CallCharMethod__return(uint16_t);
+ probe CallCharMethodV__entry(void*, void*, uintptr_t);
+ probe CallCharMethodV__return(uint16_t);
+ probe CallDoubleMethodA__entry(void*, void*, uintptr_t);
+ probe CallDoubleMethodA__return();
+ probe CallDoubleMethod__entry(void*, void*, uintptr_t);
+ probe CallDoubleMethod__return();
+ probe CallDoubleMethodV__entry(void*, void*, uintptr_t);
+ probe CallDoubleMethodV__return();
+ probe CallFloatMethodA__entry(void*, void*, uintptr_t);
+ probe CallFloatMethodA__return();
+ probe CallFloatMethod__entry(void*, void*, uintptr_t);
+ probe CallFloatMethod__return();
+ probe CallFloatMethodV__entry(void*, void*, uintptr_t);
+ probe CallFloatMethodV__return();
+ probe CallIntMethodA__entry(void*, void*, uintptr_t);
+ probe CallIntMethodA__return(uint32_t);
+ probe CallIntMethod__entry(void*, void*, uintptr_t);
+ probe CallIntMethod__return(uint32_t);
+ probe CallIntMethodV__entry(void*, void*, uintptr_t);
+ probe CallIntMethodV__return(uint32_t);
+ probe CallLongMethodA__entry(void*, void*, uintptr_t);
+ probe CallLongMethodA__return(uintptr_t);
+ probe CallLongMethod__entry(void*, void*, uintptr_t);
+ probe CallLongMethod__return(uintptr_t);
+ probe CallLongMethodV__entry(void*, void*, uintptr_t);
+ probe CallLongMethodV__return(uintptr_t);
+ probe CallNonvirtualBooleanMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualBooleanMethodA__return(uintptr_t);
+ probe CallNonvirtualBooleanMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualBooleanMethod__return(uintptr_t);
+ probe CallNonvirtualBooleanMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualBooleanMethodV__return(uintptr_t);
+ probe CallNonvirtualByteMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualByteMethodA__return(char);
+ probe CallNonvirtualByteMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualByteMethod__return(char);
+ probe CallNonvirtualByteMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualByteMethodV__return(char);
+ probe CallNonvirtualCharMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualCharMethodA__return(uint16_t);
+ probe CallNonvirtualCharMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualCharMethod__return(uint16_t);
+ probe CallNonvirtualCharMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualCharMethodV__return(uint16_t);
+ probe CallNonvirtualDoubleMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualDoubleMethodA__return();
+ probe CallNonvirtualDoubleMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualDoubleMethod__return();
+ probe CallNonvirtualDoubleMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualDoubleMethodV__return();
+ probe CallNonvirtualFloatMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualFloatMethodA__return();
+ probe CallNonvirtualFloatMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualFloatMethod__return();
+ probe CallNonvirtualFloatMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualFloatMethodV__return();
+ probe CallNonvirtualIntMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualIntMethodA__return(uint32_t);
+ probe CallNonvirtualIntMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualIntMethod__return(uint32_t);
+ probe CallNonvirtualIntMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualIntMethodV__return(uint32_t);
+ probe CallNonvirtualLongMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualLongMethodA__return(uintptr_t);
+ probe CallNonvirtualLongMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualLongMethod__return(uintptr_t);
+ probe CallNonvirtualLongMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualLongMethodV__return(uintptr_t);
+ probe CallNonvirtualObjectMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualObjectMethodA__return(void*);
+ probe CallNonvirtualObjectMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualObjectMethod__return(void*);
+ probe CallNonvirtualObjectMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualObjectMethodV__return(void*);
+ probe CallNonvirtualShortMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualShortMethodA__return(uint16_t);
+ probe CallNonvirtualShortMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualShortMethod__return(uint16_t);
+ probe CallNonvirtualShortMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualShortMethodV__return(uint16_t);
+ probe CallNonvirtualVoidMethodA__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualVoidMethodA__return();
+ probe CallNonvirtualVoidMethod__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualVoidMethod__return();
+ probe CallNonvirtualVoidMethodV__entry(void*, void*, void*, uintptr_t);
+ probe CallNonvirtualVoidMethodV__return();
+ probe CallObjectMethodA__entry(void*, void*, uintptr_t);
+ probe CallObjectMethodA__return(void*);
+ probe CallObjectMethod__entry(void*, void*, uintptr_t);
+ probe CallObjectMethod__return(void*);
+ probe CallObjectMethodV__entry(void*, void*, uintptr_t);
+ probe CallObjectMethodV__return(void*);
+ probe CallShortMethodA__entry(void*, void*, uintptr_t);
+ probe CallShortMethodA__return(uint16_t);
+ probe CallShortMethod__entry(void*, void*, uintptr_t);
+ probe CallShortMethod__return(uint16_t);
+ probe CallShortMethodV__entry(void*, void*, uintptr_t);
+ probe CallShortMethodV__return(uint16_t);
+ probe CallStaticBooleanMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticBooleanMethodA__return(uintptr_t);
+ probe CallStaticBooleanMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticBooleanMethod__return(uintptr_t);
+ probe CallStaticBooleanMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticBooleanMethodV__return(uintptr_t);
+ probe CallStaticByteMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticByteMethodA__return(char);
+ probe CallStaticByteMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticByteMethod__return(char);
+ probe CallStaticByteMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticByteMethodV__return(char);
+ probe CallStaticCharMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticCharMethodA__return(uint16_t);
+ probe CallStaticCharMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticCharMethod__return(uint16_t);
+ probe CallStaticCharMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticCharMethodV__return(uint16_t);
+ probe CallStaticDoubleMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticDoubleMethodA__return();
+ probe CallStaticDoubleMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticDoubleMethod__return();
+ probe CallStaticDoubleMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticDoubleMethodV__return();
+ probe CallStaticFloatMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticFloatMethodA__return();
+ probe CallStaticFloatMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticFloatMethod__return();
+ probe CallStaticFloatMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticFloatMethodV__return();
+ probe CallStaticIntMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticIntMethodA__return(uint32_t);
+ probe CallStaticIntMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticIntMethod__return(uint32_t);
+ probe CallStaticIntMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticIntMethodV__return(uint32_t);
+ probe CallStaticLongMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticLongMethodA__return(uintptr_t);
+ probe CallStaticLongMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticLongMethod__return(uintptr_t);
+ probe CallStaticLongMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticLongMethodV__return(uintptr_t);
+ probe CallStaticObjectMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticObjectMethodA__return(void*);
+ probe CallStaticObjectMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticObjectMethod__return(void*);
+ probe CallStaticObjectMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticObjectMethodV__return(void*);
+ probe CallStaticShortMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticShortMethodA__return(uint16_t);
+ probe CallStaticShortMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticShortMethod__return(uint16_t);
+ probe CallStaticShortMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticShortMethodV__return(uint16_t);
+ probe CallStaticVoidMethodA__entry(void*, void*, uintptr_t);
+ probe CallStaticVoidMethodA__return();
+ probe CallStaticVoidMethod__entry(void*, void*, uintptr_t);
+ probe CallStaticVoidMethod__return();
+ probe CallStaticVoidMethodV__entry(void*, void*, uintptr_t);
+ probe CallStaticVoidMethodV__return();
+ probe CallVoidMethodA__entry(void*, void*, uintptr_t);
+ probe CallVoidMethodA__return();
+ probe CallVoidMethod__entry(void*, void*, uintptr_t);
+ probe CallVoidMethod__return();
+ probe CallVoidMethodV__entry(void*, void*, uintptr_t);
+ probe CallVoidMethodV__return();
+ probe CreateJavaVM__entry(void**, void**, void*);
+ probe CreateJavaVM__return(uint32_t);
+ probe DefineClass__entry(void*, const char*, void*, char*, uintptr_t);
+ probe DefineClass__return(void*);
+ probe DeleteGlobalRef__entry(void*, void*);
+ probe DeleteGlobalRef__return();
+ probe DeleteLocalRef__entry(void*, void*);
+ probe DeleteLocalRef__return();
+ probe DeleteWeakGlobalRef__entry(void*, void*);
+ probe DeleteWeakGlobalRef__return();
+ probe DestroyJavaVM__entry(void*);
+ probe DestroyJavaVM__return(uint32_t);
+ probe DetachCurrentThread__entry(void*);
+ probe DetachCurrentThread__return(uint32_t);
+ probe EnsureLocalCapacity__entry(void*, uint32_t);
+ probe EnsureLocalCapacity__return(uint32_t);
+ probe ExceptionCheck__entry(void*);
+ probe ExceptionCheck__return(uintptr_t);
+ probe ExceptionClear__entry(void*);
+ probe ExceptionClear__return();
+ probe ExceptionDescribe__entry(void*);
+ probe ExceptionDescribe__return();
+ probe ExceptionOccurred__entry(void*);
+ probe ExceptionOccurred__return(void*);
+ probe FatalError__entry(void* env, const char*);
+ probe FindClass__entry(void*, const char*);
+ probe FindClass__return(void*);
+ probe FromReflectedField__entry(void*, void*);
+ probe FromReflectedField__return(uintptr_t);
+ probe FromReflectedMethod__entry(void*, void*);
+ probe FromReflectedMethod__return(uintptr_t);
+ probe GetArrayLength__entry(void*, void*);
+ probe GetArrayLength__return(uintptr_t);
+ probe GetBooleanArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetBooleanArrayElements__return(uintptr_t*);
+ probe GetBooleanArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uintptr_t*);
+ probe GetBooleanArrayRegion__return();
+ probe GetBooleanField__entry(void*, void*, uintptr_t);
+ probe GetBooleanField__return(uintptr_t);
+ probe GetByteArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetByteArrayElements__return(char*);
+ probe GetByteArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, char*);
+ probe GetByteArrayRegion__return();
+ probe GetByteField__entry(void*, void*, uintptr_t);
+ probe GetByteField__return(char);
+ probe GetCharArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetCharArrayElements__return(uint16_t*);
+ probe GetCharArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
+ probe GetCharArrayRegion__return();
+ probe GetCharField__entry(void*, void*, uintptr_t);
+ probe GetCharField__return(uint16_t);
+ probe GetCreatedJavaVMs__entry(void**, uintptr_t, uintptr_t*);
+ probe GetCreatedJavaVMs__return(uintptr_t);
+ probe GetDefaultJavaVMInitArgs__entry(void*);
+ probe GetDefaultJavaVMInitArgs__return(uint32_t);
+ probe GetDirectBufferAddress__entry(void*, void*);
+ probe GetDirectBufferAddress__return(void*);
+ probe GetDirectBufferCapacity__entry(void*, void*);
+ probe GetDirectBufferCapacity__return(uintptr_t);
+ probe GetDoubleArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetDoubleArrayElements__return(double*);
+ probe GetDoubleArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, double*);
+ probe GetDoubleArrayRegion__return();
+ probe GetDoubleField__entry(void*, void*, uintptr_t);
+ probe GetDoubleField__return();
+ probe GetEnv__entry(void*, void*, uint32_t);
+ probe GetEnv__return(uint32_t);
+ probe GetFieldID__entry(void*, void*, const char*, const char*);
+ probe GetFieldID__return(uintptr_t);
+ probe GetFloatArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetFloatArrayElements__return(float*);
+ probe GetFloatArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, float*);
+ probe GetFloatArrayRegion__return();
+ probe GetFloatField__entry(void*, void*, uintptr_t);
+ probe GetFloatField__return();
+ probe GetIntArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetIntArrayElements__return(uint32_t*);
+ probe GetIntArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint32_t*);
+ probe GetIntArrayRegion__return();
+ probe GetIntField__entry(void*, void*, uintptr_t);
+ probe GetIntField__return(uint32_t);
+ probe GetJavaVM__entry(void*, void**);
+ probe GetJavaVM__return(uint32_t);
+ probe GetLongArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetLongArrayElements__return(uintptr_t*);
+ probe GetLongArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uintptr_t*);
+ probe GetLongArrayRegion__return();
+ probe GetLongField__entry(void*, void*, uintptr_t);
+ probe GetLongField__return(uintptr_t);
+ probe GetMethodID__entry(void*, void*, const char*, const char*);
+ probe GetMethodID__return(uintptr_t);
+ probe GetObjectArrayElement__entry(void*, void*, uintptr_t);
+ probe GetObjectArrayElement__return(void*);
+ probe GetObjectClass__entry(void*, void*);
+ probe GetObjectClass__return(void*);
+ probe GetObjectField__entry(void*, void*, uintptr_t);
+ probe GetObjectField__return(void*);
+ probe GetObjectRefType__entry(void*, void*);
+ probe GetObjectRefType__return(void*);
+ probe GetPrimitiveArrayCritical__entry(void*, void*, uintptr_t*);
+ probe GetPrimitiveArrayCritical__return(void*);
+ probe GetShortArrayElements__entry(void*, void*, uintptr_t*);
+ probe GetShortArrayElements__return(uint16_t*);
+ probe GetShortArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
+ probe GetShortArrayRegion__return();
+ probe GetShortField__entry(void*, void*, uintptr_t);
+ probe GetShortField__return(uint16_t);
+ probe GetStaticBooleanField__entry(void*, void*, uintptr_t);
+ probe GetStaticBooleanField__return(uintptr_t);
+ probe GetStaticByteField__entry(void*, void*, uintptr_t);
+ probe GetStaticByteField__return(char);
+ probe GetStaticCharField__entry(void*, void*, uintptr_t);
+ probe GetStaticCharField__return(uint16_t);
+ probe GetStaticDoubleField__entry(void*, void*, uintptr_t);
+ probe GetStaticDoubleField__return();
+ probe GetStaticFieldID__entry(void*, void*, const char*, const char*);
+ probe GetStaticFieldID__return(uintptr_t);
+ probe GetStaticFloatField__entry(void*, void*, uintptr_t);
+ probe GetStaticFloatField__return();
+ probe GetStaticIntField__entry(void*, void*, uintptr_t);
+ probe GetStaticIntField__return(uint32_t);
+ probe GetStaticLongField__entry(void*, void*, uintptr_t);
+ probe GetStaticLongField__return(uintptr_t);
+ probe GetStaticMethodID__entry(void*, void*, const char*, const char*);
+ probe GetStaticMethodID__return(uintptr_t);
+ probe GetStaticObjectField__entry(void*, void*, uintptr_t);
+ probe GetStaticObjectField__return(void*);
+ probe GetStaticShortField__entry(void*, void*, uintptr_t);
+ probe GetStaticShortField__return(uint16_t);
+ probe GetStringChars__entry(void*, void*, uintptr_t*);
+ probe GetStringChars__return(const uint16_t*);
+ probe GetStringCritical__entry(void*, void*, uintptr_t*);
+ probe GetStringCritical__return(const uint16_t*);
+ probe GetStringLength__entry(void*, void*);
+ probe GetStringLength__return(uintptr_t);
+ probe GetStringRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
+ probe GetStringRegion__return();
+ probe GetStringUTFChars__entry(void*, void*, uintptr_t*);
+ probe GetStringUTFChars__return(const char*);
+ probe GetStringUTFLength__entry(void*, void*);
+ probe GetStringUTFLength__return(uintptr_t);
+ probe GetStringUTFRegion__entry(void*, void*, uintptr_t, uintptr_t, char*);
+ probe GetStringUTFRegion__return();
+ probe GetSuperclass__entry(void*, void*);
+ probe GetSuperclass__return(void*);
+ probe GetVersion__entry(void*);
+ probe GetVersion__return(uint32_t);
+ probe IsAssignableFrom__entry(void*, void*, void*);
+ probe IsAssignableFrom__return(uintptr_t);
+ probe IsInstanceOf__entry(void*, void*, void*);
+ probe IsInstanceOf__return(uintptr_t);
+ probe IsSameObject__entry(void*, void*, void*);
+ probe IsSameObject__return(uintptr_t);
+ probe MonitorEnter__entry(void*, void*);
+ probe MonitorEnter__return(uint32_t);
+ probe MonitorExit__entry(void*, void*);
+ probe MonitorExit__return(uint32_t);
+ probe NewBooleanArray__entry(void*, uintptr_t);
+ probe NewBooleanArray__return(void*);
+ probe NewByteArray__entry(void*, uintptr_t);
+ probe NewByteArray__return(void*);
+ probe NewCharArray__entry(void*, uintptr_t);
+ probe NewCharArray__return(void*);
+ probe NewDirectByteBuffer__entry(void*, void*, uintptr_t);
+ probe NewDirectByteBuffer__return(void*);
+ probe NewDoubleArray__entry(void*, uintptr_t);
+ probe NewDoubleArray__return(void*);
+ probe NewFloatArray__entry(void*, uintptr_t);
+ probe NewFloatArray__return(void*);
+ probe NewGlobalRef__entry(void*, void*);
+ probe NewGlobalRef__return(void*);
+ probe NewIntArray__entry(void*, uintptr_t);
+ probe NewIntArray__return(void*);
+ probe NewLocalRef__entry(void*, void*);
+ probe NewLocalRef__return(void*);
+ probe NewLongArray__entry(void*, uintptr_t);
+ probe NewLongArray__return(void*);
+ probe NewObjectA__entry(void*, void*, uintptr_t);
+ probe NewObjectA__return(void*);
+ probe NewObjectArray__entry(void*, uintptr_t, void*, void*);
+ probe NewObjectArray__return(void*);
+ probe NewObject__entry(void*, void*, uintptr_t);
+ probe NewObject__return(void*);
+ probe NewObjectV__entry(void*, void*, uintptr_t);
+ probe NewObjectV__return(void*);
+ probe NewShortArray__entry(void*, uintptr_t);
+ probe NewShortArray__return(void*);
+ probe NewString__entry(void*, const uint16_t*, uintptr_t);
+ probe NewString__return(void*);
+ probe NewStringUTF__entry(void*, const char*);
+ probe NewStringUTF__return(void*);
+ probe NewWeakGlobalRef__entry(void*, void*);
+ probe NewWeakGlobalRef__return(void*);
+ probe PopLocalFrame__entry(void*, void*);
+ probe PopLocalFrame__return(void*);
+ probe PushLocalFrame__entry(void*, uint32_t);
+ probe PushLocalFrame__return(uint32_t);
+ probe RegisterNatives__entry(void*, void*, const void*, uint32_t);
+ probe RegisterNatives__return(uint32_t);
+ probe ReleaseBooleanArrayElements__entry(void*, void*, uintptr_t*, uint32_t);
+ probe ReleaseBooleanArrayElements__return();
+ probe ReleaseByteArrayElements__entry(void*, void*, char*, uint32_t);
+ probe ReleaseByteArrayElements__return();
+ probe ReleaseCharArrayElements__entry(void*, void*, uint16_t*, uint32_t);
+ probe ReleaseCharArrayElements__return();
+ probe ReleaseDoubleArrayElements__entry(void*, void*, double*, uint32_t);
+ probe ReleaseDoubleArrayElements__return();
+ probe ReleaseFloatArrayElements__entry(void*, void*, float*, uint32_t);
+ probe ReleaseFloatArrayElements__return();
+ probe ReleaseIntArrayElements__entry(void*, void*, uint32_t*, uint32_t);
+ probe ReleaseIntArrayElements__return();
+ probe ReleaseLongArrayElements__entry(void*, void*, uintptr_t*, uint32_t);
+ probe ReleaseLongArrayElements__return();
+ probe ReleasePrimitiveArrayCritical__entry(void*, void*, void*, uint32_t);
+ probe ReleasePrimitiveArrayCritical__return();
+ probe ReleaseShortArrayElements__entry(void*, void*, uint16_t*, uint32_t);
+ probe ReleaseShortArrayElements__return();
+ probe ReleaseStringChars__entry(void*, void*, const uint16_t*);
+ probe ReleaseStringChars__return();
+ probe ReleaseStringCritical__entry(void*, void*, const uint16_t*);
+ probe ReleaseStringCritical__return();
+ probe ReleaseStringUTFChars__entry(void*, void*, const char*);
+ probe ReleaseStringUTFChars__return();
+ probe SetBooleanArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uintptr_t*);
+ probe SetBooleanArrayRegion__return();
+ probe SetBooleanField__entry(void*, void*, uintptr_t, uintptr_t);
+ probe SetBooleanField__return();
+ probe SetByteArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const char*);
+ probe SetByteArrayRegion__return();
+ probe SetByteField__entry(void*, void*, uintptr_t, char);
+ probe SetByteField__return();
+ probe SetCharArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint16_t*);
+ probe SetCharArrayRegion__return();
+ probe SetCharField__entry(void*, void*, uintptr_t, uint16_t);
+ probe SetCharField__return();
+ probe SetDoubleArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const double*);
+ probe SetDoubleArrayRegion__return();
+ probe SetDoubleField__entry(void*, void*, uintptr_t);
+ probe SetDoubleField__return();
+ probe SetFloatArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const float*);
+ probe SetFloatArrayRegion__return();
+ probe SetFloatField__entry(void*, void*, uintptr_t);
+ probe SetFloatField__return();
+ probe SetIntArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint32_t*);
+ probe SetIntArrayRegion__return();
+ probe SetIntField__entry(void*, void*, uintptr_t, uint32_t);
+ probe SetIntField__return();
+ probe SetLongArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uintptr_t*);
+ probe SetLongArrayRegion__return();
+ probe SetLongField__entry(void*, void*, uintptr_t, uintptr_t);
+ probe SetLongField__return();
+ probe SetObjectArrayElement__entry(void*, void*, uintptr_t, void*);
+ probe SetObjectArrayElement__return();
+ probe SetObjectField__entry(void*, void*, uintptr_t, void*);
+ probe SetObjectField__return();
+ probe SetShortArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint16_t*);
+ probe SetShortArrayRegion__return();
+ probe SetShortField__entry(void*, void*, uintptr_t, uint16_t);
+ probe SetShortField__return();
+ probe SetStaticBooleanField__entry(void*, void*, uintptr_t, uintptr_t);
+ probe SetStaticBooleanField__return();
+ probe SetStaticByteField__entry(void*, void*, uintptr_t, char);
+ probe SetStaticByteField__return();
+ probe SetStaticCharField__entry(void*, void*, uintptr_t, uint16_t);
+ probe SetStaticCharField__return();
+ probe SetStaticDoubleField__entry(void*, void*, uintptr_t);
+ probe SetStaticDoubleField__return();
+ probe SetStaticFloatField__entry(void*, void*, uintptr_t);
+ probe SetStaticFloatField__return();
+ probe SetStaticIntField__entry(void*, void*, uintptr_t, uint32_t);
+ probe SetStaticIntField__return();
+ probe SetStaticLongField__entry(void*, void*, uintptr_t, uintptr_t);
+ probe SetStaticLongField__return();
+ probe SetStaticObjectField__entry(void*, void*, uintptr_t, void*);
+ probe SetStaticObjectField__return();
+ probe SetStaticShortField__entry(void*, void*, uintptr_t, uint16_t);
+ probe SetStaticShortField__return();
+ probe Throw__entry(void*, void*);
+ probe Throw__return(intptr_t);
+ probe ThrowNew__entry(void*, void*, const char*);
+ probe ThrowNew__return(intptr_t);
+ probe ToReflectedField__entry(void*, void*, uintptr_t, uintptr_t);
+ probe ToReflectedField__return(void*);
+ probe ToReflectedMethod__entry(void*, void*, uintptr_t, uintptr_t);
+ probe ToReflectedMethod__return(void*);
+ probe UnregisterNatives__entry(void*, void*);
+ probe UnregisterNatives__return(uint32_t);
+};
+
+#pragma D attributes Standard/Standard/Common provider hotspot_jni provider
+#pragma D attributes Private/Private/Unknown provider hotspot_jni module
+#pragma D attributes Private/Private/Unknown provider hotspot_jni function
+#pragma D attributes Standard/Standard/Common provider hotspot_jni name
+#pragma D attributes Evolving/Evolving/Common provider hotspot_jni args
+
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/src/os/posix/dtrace/hs_private.d Fri Feb 07 09:41:36 2014 -0800
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+provider hs_private {
+ probe safepoint__begin();
+ probe safepoint__end();
+ probe cms__initmark__begin();
+ probe cms__initmark__end();
+ probe cms__remark__begin();
+ probe cms__remark__end();
+};
+
+#pragma D attributes Private/Private/Common provider hs_private provider
+#pragma D attributes Private/Private/Unknown provider hs_private module
+#pragma D attributes Private/Private/Unknown provider hs_private function
+#pragma D attributes Private/Private/Common provider hs_private name
+#pragma D attributes Private/Private/Common provider hs_private args
+
--- a/hotspot/src/os/solaris/dtrace/hotspot.d Wed Feb 05 08:57:33 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-/*
- * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-provider hotspot {
- probe class__loaded(char*, uintptr_t, void*, uintptr_t);
- probe class__unloaded(char*, uintptr_t, void*, uintptr_t);
- probe class__initialization__required(char*, uintptr_t, void*, intptr_t);
- probe class__initialization__recursive(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__concurrent(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__erroneous(char*, uintptr_t, void*, intptr_t, int);
- probe class__initialization__super__failed(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__clinit(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__error(char*, uintptr_t, void*, intptr_t,int);
- probe class__initialization__end(char*, uintptr_t, void*, intptr_t,int);
- probe vm__init__begin();
- probe vm__init__end();
- probe vm__shutdown();
- probe vmops__request(char*, uintptr_t, int);
- probe vmops__begin(char*, uintptr_t, int);
- probe vmops__end(char*, uintptr_t, int);
- probe gc__begin(uintptr_t);
- probe gc__end();
- probe mem__pool__gc__begin(
- char*, uintptr_t, char*, uintptr_t,
- uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe mem__pool__gc__end(
- char*, uintptr_t, char*, uintptr_t,
- uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe thread__start(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe thread__stop(char*, uintptr_t, uintptr_t, uintptr_t, uintptr_t);
- probe thread__sleep__begin(long long);
- probe thread__sleep__end(int);
- probe thread__yield();
- probe thread__park__begin(uintptr_t, int, long long);
- probe thread__park__end(uintptr_t);
- probe thread__unpark(uintptr_t);
- probe method__compile__begin(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
- probe method__compile__end(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t,
- char*, uintptr_t, uintptr_t);
- probe compiled__method__load(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t, void*, uintptr_t);
- probe compiled__method__unload(
- char*, uintptr_t, char*, uintptr_t, char*, uintptr_t);
- probe monitor__contended__enter(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__contended__entered(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__contended__exit(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__wait(uintptr_t, uintptr_t, char*, uintptr_t, uintptr_t);
- probe monitor__waited(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__notify(uintptr_t, uintptr_t, char*, uintptr_t);
- probe monitor__notifyAll(uintptr_t, uintptr_t, char*, uintptr_t);
-
- probe object__alloc(int, char*, uintptr_t, uintptr_t);
- probe method__entry(
- int, char*, int, char*, int, char*, int);
- probe method__return(
- int, char*, int, char*, int, char*, int);
-};
-
-#pragma D attributes Evolving/Evolving/Common provider hotspot provider
-#pragma D attributes Private/Private/Unknown provider hotspot module
-#pragma D attributes Private/Private/Unknown provider hotspot function
-#pragma D attributes Evolving/Evolving/Common provider hotspot name
-#pragma D attributes Evolving/Evolving/Common provider hotspot args
--- a/hotspot/src/os/solaris/dtrace/hotspot_jni.d Wed Feb 05 08:57:33 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,506 +0,0 @@
-/*
- * Copyright (c) 2005, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-provider hotspot_jni {
- probe AllocObject__entry(void*, void*);
- probe AllocObject__return(void*);
- probe AttachCurrentThreadAsDaemon__entry(void*, void**, void*);
- probe AttachCurrentThreadAsDaemon__return(uint32_t);
- probe AttachCurrentThread__entry(void*, void**, void*);
- probe AttachCurrentThread__return(uint32_t);
- probe CallBooleanMethodA__entry(void*, void*, uintptr_t);
- probe CallBooleanMethodA__return(uintptr_t);
- probe CallBooleanMethod__entry(void*, void*, uintptr_t);
- probe CallBooleanMethod__return(uintptr_t);
- probe CallBooleanMethodV__entry(void*, void*, uintptr_t);
- probe CallBooleanMethodV__return(uintptr_t);
- probe CallByteMethodA__entry(void*, void*, uintptr_t);
- probe CallByteMethodA__return(char);
- probe CallByteMethod__entry(void*, void*, uintptr_t);
- probe CallByteMethod__return(char);
- probe CallByteMethodV__entry(void*, void*, uintptr_t);
- probe CallByteMethodV__return(char);
- probe CallCharMethodA__entry(void*, void*, uintptr_t);
- probe CallCharMethodA__return(uint16_t);
- probe CallCharMethod__entry(void*, void*, uintptr_t);
- probe CallCharMethod__return(uint16_t);
- probe CallCharMethodV__entry(void*, void*, uintptr_t);
- probe CallCharMethodV__return(uint16_t);
- probe CallDoubleMethodA__entry(void*, void*, uintptr_t);
- probe CallDoubleMethodA__return();
- probe CallDoubleMethod__entry(void*, void*, uintptr_t);
- probe CallDoubleMethod__return();
- probe CallDoubleMethodV__entry(void*, void*, uintptr_t);
- probe CallDoubleMethodV__return();
- probe CallFloatMethodA__entry(void*, void*, uintptr_t);
- probe CallFloatMethodA__return();
- probe CallFloatMethod__entry(void*, void*, uintptr_t);
- probe CallFloatMethod__return();
- probe CallFloatMethodV__entry(void*, void*, uintptr_t);
- probe CallFloatMethodV__return();
- probe CallIntMethodA__entry(void*, void*, uintptr_t);
- probe CallIntMethodA__return(uint32_t);
- probe CallIntMethod__entry(void*, void*, uintptr_t);
- probe CallIntMethod__return(uint32_t);
- probe CallIntMethodV__entry(void*, void*, uintptr_t);
- probe CallIntMethodV__return(uint32_t);
- probe CallLongMethodA__entry(void*, void*, uintptr_t);
- probe CallLongMethodA__return(uintptr_t);
- probe CallLongMethod__entry(void*, void*, uintptr_t);
- probe CallLongMethod__return(uintptr_t);
- probe CallLongMethodV__entry(void*, void*, uintptr_t);
- probe CallLongMethodV__return(uintptr_t);
- probe CallNonvirtualBooleanMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualBooleanMethodA__return(uintptr_t);
- probe CallNonvirtualBooleanMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualBooleanMethod__return(uintptr_t);
- probe CallNonvirtualBooleanMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualBooleanMethodV__return(uintptr_t);
- probe CallNonvirtualByteMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualByteMethodA__return(char);
- probe CallNonvirtualByteMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualByteMethod__return(char);
- probe CallNonvirtualByteMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualByteMethodV__return(char);
- probe CallNonvirtualCharMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualCharMethodA__return(uint16_t);
- probe CallNonvirtualCharMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualCharMethod__return(uint16_t);
- probe CallNonvirtualCharMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualCharMethodV__return(uint16_t);
- probe CallNonvirtualDoubleMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualDoubleMethodA__return();
- probe CallNonvirtualDoubleMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualDoubleMethod__return();
- probe CallNonvirtualDoubleMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualDoubleMethodV__return();
- probe CallNonvirtualFloatMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualFloatMethodA__return();
- probe CallNonvirtualFloatMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualFloatMethod__return();
- probe CallNonvirtualFloatMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualFloatMethodV__return();
- probe CallNonvirtualIntMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualIntMethodA__return(uint32_t);
- probe CallNonvirtualIntMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualIntMethod__return(uint32_t);
- probe CallNonvirtualIntMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualIntMethodV__return(uint32_t);
- probe CallNonvirtualLongMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualLongMethodA__return(uintptr_t);
- probe CallNonvirtualLongMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualLongMethod__return(uintptr_t);
- probe CallNonvirtualLongMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualLongMethodV__return(uintptr_t);
- probe CallNonvirtualObjectMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualObjectMethodA__return(void*);
- probe CallNonvirtualObjectMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualObjectMethod__return(void*);
- probe CallNonvirtualObjectMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualObjectMethodV__return(void*);
- probe CallNonvirtualShortMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualShortMethodA__return(uint16_t);
- probe CallNonvirtualShortMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualShortMethod__return(uint16_t);
- probe CallNonvirtualShortMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualShortMethodV__return(uint16_t);
- probe CallNonvirtualVoidMethodA__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualVoidMethodA__return();
- probe CallNonvirtualVoidMethod__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualVoidMethod__return();
- probe CallNonvirtualVoidMethodV__entry(void*, void*, void*, uintptr_t);
- probe CallNonvirtualVoidMethodV__return();
- probe CallObjectMethodA__entry(void*, void*, uintptr_t);
- probe CallObjectMethodA__return(void*);
- probe CallObjectMethod__entry(void*, void*, uintptr_t);
- probe CallObjectMethod__return(void*);
- probe CallObjectMethodV__entry(void*, void*, uintptr_t);
- probe CallObjectMethodV__return(void*);
- probe CallShortMethodA__entry(void*, void*, uintptr_t);
- probe CallShortMethodA__return(uint16_t);
- probe CallShortMethod__entry(void*, void*, uintptr_t);
- probe CallShortMethod__return(uint16_t);
- probe CallShortMethodV__entry(void*, void*, uintptr_t);
- probe CallShortMethodV__return(uint16_t);
- probe CallStaticBooleanMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticBooleanMethodA__return(uintptr_t);
- probe CallStaticBooleanMethod__entry(void*, void*, uintptr_t);
- probe CallStaticBooleanMethod__return(uintptr_t);
- probe CallStaticBooleanMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticBooleanMethodV__return(uintptr_t);
- probe CallStaticByteMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticByteMethodA__return(char);
- probe CallStaticByteMethod__entry(void*, void*, uintptr_t);
- probe CallStaticByteMethod__return(char);
- probe CallStaticByteMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticByteMethodV__return(char);
- probe CallStaticCharMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticCharMethodA__return(uint16_t);
- probe CallStaticCharMethod__entry(void*, void*, uintptr_t);
- probe CallStaticCharMethod__return(uint16_t);
- probe CallStaticCharMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticCharMethodV__return(uint16_t);
- probe CallStaticDoubleMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticDoubleMethodA__return();
- probe CallStaticDoubleMethod__entry(void*, void*, uintptr_t);
- probe CallStaticDoubleMethod__return();
- probe CallStaticDoubleMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticDoubleMethodV__return();
- probe CallStaticFloatMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticFloatMethodA__return();
- probe CallStaticFloatMethod__entry(void*, void*, uintptr_t);
- probe CallStaticFloatMethod__return();
- probe CallStaticFloatMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticFloatMethodV__return();
- probe CallStaticIntMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticIntMethodA__return(uint32_t);
- probe CallStaticIntMethod__entry(void*, void*, uintptr_t);
- probe CallStaticIntMethod__return(uint32_t);
- probe CallStaticIntMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticIntMethodV__return(uint32_t);
- probe CallStaticLongMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticLongMethodA__return(uintptr_t);
- probe CallStaticLongMethod__entry(void*, void*, uintptr_t);
- probe CallStaticLongMethod__return(uintptr_t);
- probe CallStaticLongMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticLongMethodV__return(uintptr_t);
- probe CallStaticObjectMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticObjectMethodA__return(void*);
- probe CallStaticObjectMethod__entry(void*, void*, uintptr_t);
- probe CallStaticObjectMethod__return(void*);
- probe CallStaticObjectMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticObjectMethodV__return(void*);
- probe CallStaticShortMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticShortMethodA__return(uint16_t);
- probe CallStaticShortMethod__entry(void*, void*, uintptr_t);
- probe CallStaticShortMethod__return(uint16_t);
- probe CallStaticShortMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticShortMethodV__return(uint16_t);
- probe CallStaticVoidMethodA__entry(void*, void*, uintptr_t);
- probe CallStaticVoidMethodA__return();
- probe CallStaticVoidMethod__entry(void*, void*, uintptr_t);
- probe CallStaticVoidMethod__return();
- probe CallStaticVoidMethodV__entry(void*, void*, uintptr_t);
- probe CallStaticVoidMethodV__return();
- probe CallVoidMethodA__entry(void*, void*, uintptr_t);
- probe CallVoidMethodA__return();
- probe CallVoidMethod__entry(void*, void*, uintptr_t);
- probe CallVoidMethod__return();
- probe CallVoidMethodV__entry(void*, void*, uintptr_t);
- probe CallVoidMethodV__return();
- probe CreateJavaVM__entry(void**, void**, void*);
- probe CreateJavaVM__return(uint32_t);
- probe DefineClass__entry(void*, const char*, void*, char*, uintptr_t);
- probe DefineClass__return(void*);
- probe DeleteGlobalRef__entry(void*, void*);
- probe DeleteGlobalRef__return();
- probe DeleteLocalRef__entry(void*, void*);
- probe DeleteLocalRef__return();
- probe DeleteWeakGlobalRef__entry(void*, void*);
- probe DeleteWeakGlobalRef__return();
- probe DestroyJavaVM__entry(void*);
- probe DestroyJavaVM__return(uint32_t);
- probe DetachCurrentThread__entry(void*);
- probe DetachCurrentThread__return(uint32_t);
- probe EnsureLocalCapacity__entry(void*, uint32_t);
- probe EnsureLocalCapacity__return(uint32_t);
- probe ExceptionCheck__entry(void*);
- probe ExceptionCheck__return(uintptr_t);
- probe ExceptionClear__entry(void*);
- probe ExceptionClear__return();
- probe ExceptionDescribe__entry(void*);
- probe ExceptionDescribe__return();
- probe ExceptionOccurred__entry(void*);
- probe ExceptionOccurred__return(void*);
- probe FatalError__entry(void* env, const char*);
- probe FindClass__entry(void*, const char*);
- probe FindClass__return(void*);
- probe FromReflectedField__entry(void*, void*);
- probe FromReflectedField__return(uintptr_t);
- probe FromReflectedMethod__entry(void*, void*);
- probe FromReflectedMethod__return(uintptr_t);
- probe GetArrayLength__entry(void*, void*);
- probe GetArrayLength__return(uintptr_t);
- probe GetBooleanArrayElements__entry(void*, void*, uintptr_t*);
- probe GetBooleanArrayElements__return(uintptr_t*);
- probe GetBooleanArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uintptr_t*);
- probe GetBooleanArrayRegion__return();
- probe GetBooleanField__entry(void*, void*, uintptr_t);
- probe GetBooleanField__return(uintptr_t);
- probe GetByteArrayElements__entry(void*, void*, uintptr_t*);
- probe GetByteArrayElements__return(char*);
- probe GetByteArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, char*);
- probe GetByteArrayRegion__return();
- probe GetByteField__entry(void*, void*, uintptr_t);
- probe GetByteField__return(char);
- probe GetCharArrayElements__entry(void*, void*, uintptr_t*);
- probe GetCharArrayElements__return(uint16_t*);
- probe GetCharArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
- probe GetCharArrayRegion__return();
- probe GetCharField__entry(void*, void*, uintptr_t);
- probe GetCharField__return(uint16_t);
- probe GetCreatedJavaVMs__entry(void**, uintptr_t, uintptr_t*);
- probe GetCreatedJavaVMs__return(uintptr_t);
- probe GetDefaultJavaVMInitArgs__entry(void*);
- probe GetDefaultJavaVMInitArgs__return(uint32_t);
- probe GetDirectBufferAddress__entry(void*, void*);
- probe GetDirectBufferAddress__return(void*);
- probe GetDirectBufferCapacity__entry(void*, void*);
- probe GetDirectBufferCapacity__return(uintptr_t);
- probe GetDoubleArrayElements__entry(void*, void*, uintptr_t*);
- probe GetDoubleArrayElements__return(double*);
- probe GetDoubleArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, double*);
- probe GetDoubleArrayRegion__return();
- probe GetDoubleField__entry(void*, void*, uintptr_t);
- probe GetDoubleField__return();
- probe GetEnv__entry(void*, void*, uint32_t);
- probe GetEnv__return(uint32_t);
- probe GetFieldID__entry(void*, void*, const char*, const char*);
- probe GetFieldID__return(uintptr_t);
- probe GetFloatArrayElements__entry(void*, void*, uintptr_t*);
- probe GetFloatArrayElements__return(float*);
- probe GetFloatArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, float*);
- probe GetFloatArrayRegion__return();
- probe GetFloatField__entry(void*, void*, uintptr_t);
- probe GetFloatField__return();
- probe GetIntArrayElements__entry(void*, void*, uintptr_t*);
- probe GetIntArrayElements__return(uint32_t*);
- probe GetIntArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint32_t*);
- probe GetIntArrayRegion__return();
- probe GetIntField__entry(void*, void*, uintptr_t);
- probe GetIntField__return(uint32_t);
- probe GetJavaVM__entry(void*, void**);
- probe GetJavaVM__return(uint32_t);
- probe GetLongArrayElements__entry(void*, void*, uintptr_t*);
- probe GetLongArrayElements__return(uintptr_t*);
- probe GetLongArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uintptr_t*);
- probe GetLongArrayRegion__return();
- probe GetLongField__entry(void*, void*, uintptr_t);
- probe GetLongField__return(uintptr_t);
- probe GetMethodID__entry(void*, void*, const char*, const char*);
- probe GetMethodID__return(uintptr_t);
- probe GetObjectArrayElement__entry(void*, void*, uintptr_t);
- probe GetObjectArrayElement__return(void*);
- probe GetObjectClass__entry(void*, void*);
- probe GetObjectClass__return(void*);
- probe GetObjectField__entry(void*, void*, uintptr_t);
- probe GetObjectField__return(void*);
- probe GetObjectRefType__entry(void*, void*);
- probe GetObjectRefType__return(void*);
- probe GetPrimitiveArrayCritical__entry(void*, void*, uintptr_t*);
- probe GetPrimitiveArrayCritical__return(void*);
- probe GetShortArrayElements__entry(void*, void*, uintptr_t*);
- probe GetShortArrayElements__return(uint16_t*);
- probe GetShortArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
- probe GetShortArrayRegion__return();
- probe GetShortField__entry(void*, void*, uintptr_t);
- probe GetShortField__return(uint16_t);
- probe GetStaticBooleanField__entry(void*, void*, uintptr_t);
- probe GetStaticBooleanField__return(uintptr_t);
- probe GetStaticByteField__entry(void*, void*, uintptr_t);
- probe GetStaticByteField__return(char);
- probe GetStaticCharField__entry(void*, void*, uintptr_t);
- probe GetStaticCharField__return(uint16_t);
- probe GetStaticDoubleField__entry(void*, void*, uintptr_t);
- probe GetStaticDoubleField__return();
- probe GetStaticFieldID__entry(void*, void*, const char*, const char*);
- probe GetStaticFieldID__return(uintptr_t);
- probe GetStaticFloatField__entry(void*, void*, uintptr_t);
- probe GetStaticFloatField__return();
- probe GetStaticIntField__entry(void*, void*, uintptr_t);
- probe GetStaticIntField__return(uint32_t);
- probe GetStaticLongField__entry(void*, void*, uintptr_t);
- probe GetStaticLongField__return(uintptr_t);
- probe GetStaticMethodID__entry(void*, void*, const char*, const char*);
- probe GetStaticMethodID__return(uintptr_t);
- probe GetStaticObjectField__entry(void*, void*, uintptr_t);
- probe GetStaticObjectField__return(void*);
- probe GetStaticShortField__entry(void*, void*, uintptr_t);
- probe GetStaticShortField__return(uint16_t);
- probe GetStringChars__entry(void*, void*, uintptr_t*);
- probe GetStringChars__return(const uint16_t*);
- probe GetStringCritical__entry(void*, void*, uintptr_t*);
- probe GetStringCritical__return(const uint16_t*);
- probe GetStringLength__entry(void*, void*);
- probe GetStringLength__return(uintptr_t);
- probe GetStringRegion__entry(void*, void*, uintptr_t, uintptr_t, uint16_t*);
- probe GetStringRegion__return();
- probe GetStringUTFChars__entry(void*, void*, uintptr_t*);
- probe GetStringUTFChars__return(const char*);
- probe GetStringUTFLength__entry(void*, void*);
- probe GetStringUTFLength__return(uintptr_t);
- probe GetStringUTFRegion__entry(void*, void*, uintptr_t, uintptr_t, char*);
- probe GetStringUTFRegion__return();
- probe GetSuperclass__entry(void*, void*);
- probe GetSuperclass__return(void*);
- probe GetVersion__entry(void*);
- probe GetVersion__return(uint32_t);
- probe IsAssignableFrom__entry(void*, void*, void*);
- probe IsAssignableFrom__return(uintptr_t);
- probe IsInstanceOf__entry(void*, void*, void*);
- probe IsInstanceOf__return(uintptr_t);
- probe IsSameObject__entry(void*, void*, void*);
- probe IsSameObject__return(uintptr_t);
- probe MonitorEnter__entry(void*, void*);
- probe MonitorEnter__return(uint32_t);
- probe MonitorExit__entry(void*, void*);
- probe MonitorExit__return(uint32_t);
- probe NewBooleanArray__entry(void*, uintptr_t);
- probe NewBooleanArray__return(void*);
- probe NewByteArray__entry(void*, uintptr_t);
- probe NewByteArray__return(void*);
- probe NewCharArray__entry(void*, uintptr_t);
- probe NewCharArray__return(void*);
- probe NewDirectByteBuffer__entry(void*, void*, uintptr_t);
- probe NewDirectByteBuffer__return(void*);
- probe NewDoubleArray__entry(void*, uintptr_t);
- probe NewDoubleArray__return(void*);
- probe NewFloatArray__entry(void*, uintptr_t);
- probe NewFloatArray__return(void*);
- probe NewGlobalRef__entry(void*, void*);
- probe NewGlobalRef__return(void*);
- probe NewIntArray__entry(void*, uintptr_t);
- probe NewIntArray__return(void*);
- probe NewLocalRef__entry(void*, void*);
- probe NewLocalRef__return(void*);
- probe NewLongArray__entry(void*, uintptr_t);
- probe NewLongArray__return(void*);
- probe NewObjectA__entry(void*, void*, uintptr_t);
- probe NewObjectA__return(void*);
- probe NewObjectArray__entry(void*, uintptr_t, void*, void*);
- probe NewObjectArray__return(void*);
- probe NewObject__entry(void*, void*, uintptr_t);
- probe NewObject__return(void*);
- probe NewObjectV__entry(void*, void*, uintptr_t);
- probe NewObjectV__return(void*);
- probe NewShortArray__entry(void*, uintptr_t);
- probe NewShortArray__return(void*);
- probe NewString__entry(void*, const uint16_t*, uintptr_t);
- probe NewString__return(void*);
- probe NewStringUTF__entry(void*, const char*);
- probe NewStringUTF__return(void*);
- probe NewWeakGlobalRef__entry(void*, void*);
- probe NewWeakGlobalRef__return(void*);
- probe PopLocalFrame__entry(void*, void*);
- probe PopLocalFrame__return(void*);
- probe PushLocalFrame__entry(void*, uint32_t);
- probe PushLocalFrame__return(uint32_t);
- probe RegisterNatives__entry(void*, void*, const void*, uint32_t);
- probe RegisterNatives__return(uint32_t);
- probe ReleaseBooleanArrayElements__entry(void*, void*, uintptr_t*, uint32_t);
- probe ReleaseBooleanArrayElements__return();
- probe ReleaseByteArrayElements__entry(void*, void*, char*, uint32_t);
- probe ReleaseByteArrayElements__return();
- probe ReleaseCharArrayElements__entry(void*, void*, uint16_t*, uint32_t);
- probe ReleaseCharArrayElements__return();
- probe ReleaseDoubleArrayElements__entry(void*, void*, double*, uint32_t);
- probe ReleaseDoubleArrayElements__return();
- probe ReleaseFloatArrayElements__entry(void*, void*, float*, uint32_t);
- probe ReleaseFloatArrayElements__return();
- probe ReleaseIntArrayElements__entry(void*, void*, uint32_t*, uint32_t);
- probe ReleaseIntArrayElements__return();
- probe ReleaseLongArrayElements__entry(void*, void*, uintptr_t*, uint32_t);
- probe ReleaseLongArrayElements__return();
- probe ReleasePrimitiveArrayCritical__entry(void*, void*, void*, uint32_t);
- probe ReleasePrimitiveArrayCritical__return();
- probe ReleaseShortArrayElements__entry(void*, void*, uint16_t*, uint32_t);
- probe ReleaseShortArrayElements__return();
- probe ReleaseStringChars__entry(void*, void*, const uint16_t*);
- probe ReleaseStringChars__return();
- probe ReleaseStringCritical__entry(void*, void*, const uint16_t*);
- probe ReleaseStringCritical__return();
- probe ReleaseStringUTFChars__entry(void*, void*, const char*);
- probe ReleaseStringUTFChars__return();
- probe SetBooleanArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uintptr_t*);
- probe SetBooleanArrayRegion__return();
- probe SetBooleanField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetBooleanField__return();
- probe SetByteArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const char*);
- probe SetByteArrayRegion__return();
- probe SetByteField__entry(void*, void*, uintptr_t, char);
- probe SetByteField__return();
- probe SetCharArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint16_t*);
- probe SetCharArrayRegion__return();
- probe SetCharField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetCharField__return();
- probe SetDoubleArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const double*);
- probe SetDoubleArrayRegion__return();
- probe SetDoubleField__entry(void*, void*, uintptr_t);
- probe SetDoubleField__return();
- probe SetFloatArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const float*);
- probe SetFloatArrayRegion__return();
- probe SetFloatField__entry(void*, void*, uintptr_t);
- probe SetFloatField__return();
- probe SetIntArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint32_t*);
- probe SetIntArrayRegion__return();
- probe SetIntField__entry(void*, void*, uintptr_t, uint32_t);
- probe SetIntField__return();
- probe SetLongArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uintptr_t*);
- probe SetLongArrayRegion__return();
- probe SetLongField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetLongField__return();
- probe SetObjectArrayElement__entry(void*, void*, uintptr_t, void*);
- probe SetObjectArrayElement__return();
- probe SetObjectField__entry(void*, void*, uintptr_t, void*);
- probe SetObjectField__return();
- probe SetShortArrayRegion__entry(void*, void*, uintptr_t, uintptr_t, const uint16_t*);
- probe SetShortArrayRegion__return();
- probe SetShortField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetShortField__return();
- probe SetStaticBooleanField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetStaticBooleanField__return();
- probe SetStaticByteField__entry(void*, void*, uintptr_t, char);
- probe SetStaticByteField__return();
- probe SetStaticCharField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetStaticCharField__return();
- probe SetStaticDoubleField__entry(void*, void*, uintptr_t);
- probe SetStaticDoubleField__return();
- probe SetStaticFloatField__entry(void*, void*, uintptr_t);
- probe SetStaticFloatField__return();
- probe SetStaticIntField__entry(void*, void*, uintptr_t, uint32_t);
- probe SetStaticIntField__return();
- probe SetStaticLongField__entry(void*, void*, uintptr_t, uintptr_t);
- probe SetStaticLongField__return();
- probe SetStaticObjectField__entry(void*, void*, uintptr_t, void*);
- probe SetStaticObjectField__return();
- probe SetStaticShortField__entry(void*, void*, uintptr_t, uint16_t);
- probe SetStaticShortField__return();
- probe Throw__entry(void*, void*);
- probe Throw__return(intptr_t);
- probe ThrowNew__entry(void*, void*, const char*);
- probe ThrowNew__return(intptr_t);
- probe ToReflectedField__entry(void*, void*, uintptr_t, uintptr_t);
- probe ToReflectedField__return(void*);
- probe ToReflectedMethod__entry(void*, void*, uintptr_t, uintptr_t);
- probe ToReflectedMethod__return(void*);
- probe UnregisterNatives__entry(void*, void*);
- probe UnregisterNatives__return(uint32_t);
-};
-
-#pragma D attributes Standard/Standard/Common provider hotspot_jni provider
-#pragma D attributes Private/Private/Unknown provider hotspot_jni module
-#pragma D attributes Private/Private/Unknown provider hotspot_jni function
-#pragma D attributes Standard/Standard/Common provider hotspot_jni name
-#pragma D attributes Evolving/Evolving/Common provider hotspot_jni args
-
--- a/hotspot/src/os/solaris/dtrace/hs_private.d Wed Feb 05 08:57:33 2014 -0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2005, 2012, Oracle and/or its affiliates. All rights reserved.
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
- *
- * This code is free software; you can redistribute it and/or modify it
- * under the terms of the GNU General Public License version 2 only, as
- * published by the Free Software Foundation.
- *
- * This code is distributed in the hope that it will be useful, but WITHOUT
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
- * version 2 for more details (a copy is included in the LICENSE file that
- * accompanied this code).
- *
- * You should have received a copy of the GNU General Public License version
- * 2 along with this work; if not, write to the Free Software Foundation,
- * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
- *
- * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
- * or visit www.oracle.com if you need additional information or have any
- * questions.
- *
- */
-
-provider hs_private {
- probe safepoint__begin();
- probe safepoint__end();
- probe cms__initmark__begin();
- probe cms__initmark__end();
- probe cms__remark__begin();
- probe cms__remark__end();
-};
-
-#pragma D attributes Private/Private/Common provider hs_private provider
-#pragma D attributes Private/Private/Unknown provider hs_private module
-#pragma D attributes Private/Private/Unknown provider hs_private function
-#pragma D attributes Private/Private/Common provider hs_private name
-#pragma D attributes Private/Private/Common provider hs_private args
-
--- a/hotspot/src/os/solaris/vm/os_solaris.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/os/solaris/vm/os_solaris.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -2441,13 +2441,14 @@
return;
}
- if (Arguments::created_by_gamma_launcher()) {
- // Support for the gamma launcher. Typical value for buf is
- // "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm.so". If "/jre/lib/" appears at
- // the right place in the string, then assume we are installed in a JDK and
- // we're done. Otherwise, check for a JAVA_HOME environment variable and fix
- // up the path so it looks like libjvm.so is installed there (append a
- // fake suffix hotspot/libjvm.so).
+ if (Arguments::sun_java_launcher_is_altjvm()) {
+ // Support for the java launcher's '-XXaltjvm=<path>' option. Typical
+ // value for buf is "<JAVA_HOME>/jre/lib/<arch>/<vmtype>/libjvm.so".
+ // If "/jre/lib/" appears at the right place in the string, then
+ // assume we are installed in a JDK and we're done. Otherwise, check
+ // for a JAVA_HOME environment variable and fix up the path so it
+ // looks like libjvm.so is installed there (append a fake suffix
+ // hotspot/libjvm.so).
const char *p = buf + strlen(buf) - 1;
for (int count = 0; p > buf && count < 5; ++count) {
for (--p; p > buf && *p != '/'; --p)
--- a/hotspot/src/os/windows/vm/os_windows.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/os/windows/vm/os_windows.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -1810,32 +1810,30 @@
}
buf[0] = '\0';
- if (Arguments::created_by_gamma_launcher()) {
- // Support for the gamma launcher. Check for an
- // JAVA_HOME environment variable
- // and fix up the path so it looks like
- // libjvm.so is installed there (append a fake suffix
- // hotspot/libjvm.so).
- char* java_home_var = ::getenv("JAVA_HOME");
- if (java_home_var != NULL && java_home_var[0] != 0) {
-
- strncpy(buf, java_home_var, buflen);
-
- // determine if this is a legacy image or modules image
- // modules image doesn't have "jre" subdirectory
- size_t len = strlen(buf);
- char* jrebin_p = buf + len;
- jio_snprintf(jrebin_p, buflen-len, "\\jre\\bin\\");
- if (0 != _access(buf, 0)) {
- jio_snprintf(jrebin_p, buflen-len, "\\bin\\");
- }
- len = strlen(buf);
- jio_snprintf(buf + len, buflen-len, "hotspot\\jvm.dll");
- }
- }
-
- if(buf[0] == '\0') {
- GetModuleFileName(vm_lib_handle, buf, buflen);
+ if (Arguments::sun_java_launcher_is_altjvm()) {
+ // Support for the java launcher's '-XXaltjvm=<path>' option. Check
+ // for a JAVA_HOME environment variable and fix up the path so it
+ // looks like jvm.dll is installed there (append a fake suffix
+ // hotspot/jvm.dll).
+ char* java_home_var = ::getenv("JAVA_HOME");
+ if (java_home_var != NULL && java_home_var[0] != 0) {
+ strncpy(buf, java_home_var, buflen);
+
+ // determine if this is a legacy image or modules image
+ // modules image doesn't have "jre" subdirectory
+ size_t len = strlen(buf);
+ char* jrebin_p = buf + len;
+ jio_snprintf(jrebin_p, buflen-len, "\\jre\\bin\\");
+ if (0 != _access(buf, 0)) {
+ jio_snprintf(jrebin_p, buflen-len, "\\bin\\");
+ }
+ len = strlen(buf);
+ jio_snprintf(buf + len, buflen-len, "hotspot\\jvm.dll");
+ }
+ }
+
+ if (buf[0] == '\0') {
+ GetModuleFileName(vm_lib_handle, buf, buflen);
}
strcpy(saved_jvm_path, buf);
}
--- a/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/tools/ProjectCreator/WinGammaPlatformVC10.java Fri Feb 07 09:41:36 2014 -0800
@@ -161,7 +161,18 @@
for (BuildConfig cfg : allConfigs) {
startTag(cfg, "PropertyGroup");
tagData("LocalDebuggerCommand", cfg.get("JdkTargetRoot") + "\\bin\\java.exe");
- tagData("LocalDebuggerCommandArguments", "-XXaltjvm=$(TargetDir) -Dsun.java.launcher=gamma");
+ // The JVM loads some libraries using a path relative to
+ // itself because it expects to be in a JRE or a JDK. The java
+ // launcher's '-XXaltjvm=' option allows the JVM to be outside
+ // the JRE or JDK so '-Dsun.java.launcher.is_altjvm=true'
+ // forces a fake JAVA_HOME relative path to be used to
+ // find the other libraries. The '-XX:+PauseAtExit' option
+ // causes the VM to wait for key press before exiting; this
+ // allows any stdout or stderr messages to be seen before
+ // the cmdtool exits.
+ tagData("LocalDebuggerCommandArguments", "-XXaltjvm=$(TargetDir) "
+ + "-Dsun.java.launcher.is_altjvm=true "
+ + "-XX:+UnlockDiagnosticVMOptions -XX:+PauseAtExit");
tagData("LocalDebuggerEnvironment", "JAVA_HOME=" + cfg.get("JdkTargetRoot"));
endTag();
}
--- a/hotspot/src/share/vm/interpreter/linkResolver.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/interpreter/linkResolver.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -564,16 +564,7 @@
}
}
- // 5. check if method is concrete
- if (resolved_method->is_abstract() && !resolved_klass->is_abstract()) {
- ResourceMark rm(THREAD);
- THROW_MSG(vmSymbols::java_lang_AbstractMethodError(),
- Method::name_and_sig_as_C_string(resolved_klass(),
- method_name,
- method_signature));
- }
-
- // 6. access checks, access checking may be turned off when calling from within the VM.
+ // 5. access checks, access checking may be turned off when calling from within the VM.
if (check_access) {
assert(current_klass.not_null() , "current_klass should not be null");
--- a/hotspot/src/share/vm/prims/jni.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/prims/jni.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -1320,9 +1320,13 @@
// interface call
KlassHandle h_holder(THREAD, holder);
- int itbl_index = m->itable_index();
- Klass* k = h_recv->klass();
- selected_method = InstanceKlass::cast(k)->method_at_itable(h_holder(), itbl_index, CHECK);
+ if (call_type == JNI_VIRTUAL) {
+ int itbl_index = m->itable_index();
+ Klass* k = h_recv->klass();
+ selected_method = InstanceKlass::cast(k)->method_at_itable(h_holder(), itbl_index, CHECK);
+ } else {
+ selected_method = m;
+ }
}
}
--- a/hotspot/src/share/vm/prims/jvmtiEnv.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/prims/jvmtiEnv.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -1360,8 +1360,10 @@
if (state == NULL) {
return JVMTI_ERROR_THREAD_NOT_ALIVE;
}
- uint32_t debug_bits = 0;
- if (is_thread_fully_suspended(java_thread, true, &debug_bits)) {
+
+ // It is only safe to perform the direct operation on the current
+ // thread. All other usage needs to use a vm-safepoint-op for safety.
+ if (java_thread == JavaThread::current()) {
err = get_frame_count(state, count_ptr);
} else {
// get java stack frame count at safepoint.
@@ -1476,9 +1478,10 @@
jvmtiError
JvmtiEnv::GetFrameLocation(JavaThread* java_thread, jint depth, jmethodID* method_ptr, jlocation* location_ptr) {
jvmtiError err = JVMTI_ERROR_NONE;
- uint32_t debug_bits = 0;
-
- if (is_thread_fully_suspended(java_thread, true, &debug_bits)) {
+
+ // It is only safe to perform the direct operation on the current
+ // thread. All other usage needs to use a vm-safepoint-op for safety.
+ if (java_thread == JavaThread::current()) {
err = get_frame_location(java_thread, depth, method_ptr, location_ptr);
} else {
// JVMTI get java stack frame location at safepoint.
--- a/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/prims/jvmtiEnvBase.hpp Fri Feb 07 09:41:36 2014 -0800
@@ -533,7 +533,11 @@
VMOp_Type type() const { return VMOp_GetFrameCount; }
jvmtiError result() { return _result; }
void doit() {
- _result = ((JvmtiEnvBase*)_env)->get_frame_count(_state, _count_ptr);
+ _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
+ JavaThread* jt = _state->get_thread();
+ if (Threads::includes(jt) && !jt->is_exiting() && jt->threadObj() != NULL) {
+ _result = ((JvmtiEnvBase*)_env)->get_frame_count(_state, _count_ptr);
+ }
}
};
@@ -559,8 +563,12 @@
VMOp_Type type() const { return VMOp_GetFrameLocation; }
jvmtiError result() { return _result; }
void doit() {
- _result = ((JvmtiEnvBase*)_env)->get_frame_location(_java_thread, _depth,
- _method_ptr, _location_ptr);
+ _result = JVMTI_ERROR_THREAD_NOT_ALIVE;
+ if (Threads::includes(_java_thread) && !_java_thread->is_exiting() &&
+ _java_thread->threadObj() != NULL) {
+ _result = ((JvmtiEnvBase*)_env)->get_frame_location(_java_thread, _depth,
+ _method_ptr, _location_ptr);
+ }
}
};
--- a/hotspot/src/share/vm/runtime/arguments.cpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/runtime/arguments.cpp Fri Feb 07 09:41:36 2014 -0800
@@ -101,7 +101,7 @@
const char* Arguments::_java_vendor_url_bug = DEFAULT_VENDOR_URL_BUG;
const char* Arguments::_sun_java_launcher = DEFAULT_JAVA_LAUNCHER;
int Arguments::_sun_java_launcher_pid = -1;
-bool Arguments::_created_by_gamma_launcher = false;
+bool Arguments::_sun_java_launcher_is_altjvm = false;
// These parameters are reset in method parse_vm_init_args(JavaVMInitArgs*)
bool Arguments::_AlwaysCompileLoopMethods = AlwaysCompileLoopMethods;
@@ -151,7 +151,8 @@
// Process java launcher properties.
void Arguments::process_sun_java_launcher_properties(JavaVMInitArgs* args) {
- // See if sun.java.launcher or sun.java.launcher.pid is defined.
+ // See if sun.java.launcher, sun.java.launcher.is_altjvm or
+ // sun.java.launcher.pid is defined.
// Must do this before setting up other system properties,
// as some of them may depend on launcher type.
for (int index = 0; index < args->nOptions; index++) {
@@ -162,6 +163,12 @@
process_java_launcher_argument(tail, option->extraInfo);
continue;
}
+ if (match_option(option, "-Dsun.java.launcher.is_altjvm=", &tail)) {
+ if (strcmp(tail, "true") == 0) {
+ _sun_java_launcher_is_altjvm = true;
+ }
+ continue;
+ }
if (match_option(option, "-Dsun.java.launcher.pid=", &tail)) {
_sun_java_launcher_pid = atoi(tail);
continue;
@@ -1013,9 +1020,10 @@
_java_command = value;
// Record value in Arguments, but let it get passed to Java.
- } else if (strcmp(key, "sun.java.launcher.pid") == 0) {
- // launcher.pid property is private and is processed
- // in process_sun_java_launcher_properties();
+ } else if (strcmp(key, "sun.java.launcher.is_altjvm") == 0 ||
+ strcmp(key, "sun.java.launcher.pid") == 0) {
+ // sun.java.launcher.is_altjvm and sun.java.launcher.pid property are
+ // private and are processed in process_sun_java_launcher_properties();
// the sun.java.launcher property is passed on to the java application
FreeHeap(key);
if (eq != NULL) {
@@ -1810,9 +1818,6 @@
void Arguments::process_java_launcher_argument(const char* launcher, void* extra_info) {
_sun_java_launcher = strdup(launcher);
- if (strcmp("gamma", _sun_java_launcher) == 0) {
- _created_by_gamma_launcher = true;
- }
}
bool Arguments::created_by_java_launcher() {
@@ -1820,8 +1825,8 @@
return strcmp(DEFAULT_JAVA_LAUNCHER, _sun_java_launcher) != 0;
}
-bool Arguments::created_by_gamma_launcher() {
- return _created_by_gamma_launcher;
+bool Arguments::sun_java_launcher_is_altjvm() {
+ return _sun_java_launcher_is_altjvm;
}
//===========================================================================================================
@@ -3809,16 +3814,6 @@
}
}
- // set PauseAtExit if the gamma launcher was used and a debugger is attached
- // but only if not already set on the commandline
- if (Arguments::created_by_gamma_launcher() && os::is_debugger_attached()) {
- bool set = false;
- CommandLineFlags::wasSetOnCmdline("PauseAtExit", &set);
- if (!set) {
- FLAG_SET_DEFAULT(PauseAtExit, true);
- }
- }
-
return JNI_OK;
}
--- a/hotspot/src/share/vm/runtime/arguments.hpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/runtime/arguments.hpp Fri Feb 07 09:41:36 2014 -0800
@@ -269,14 +269,14 @@
static const char* _java_vendor_url_bug;
// sun.java.launcher, private property to provide information about
- // java/gamma launcher
+ // java launcher
static const char* _sun_java_launcher;
// sun.java.launcher.pid, private property
static int _sun_java_launcher_pid;
- // was this VM created by the gamma launcher
- static bool _created_by_gamma_launcher;
+ // was this VM created via the -XXaltjvm=<path> option
+ static bool _sun_java_launcher_is_altjvm;
// Option flags
static bool _has_profile;
@@ -498,8 +498,8 @@
static const char* sun_java_launcher() { return _sun_java_launcher; }
// Was VM created by a Java launcher?
static bool created_by_java_launcher();
- // Was VM created by the gamma Java launcher?
- static bool created_by_gamma_launcher();
+ // -Dsun.java.launcher.is_altjvm
+ static bool sun_java_launcher_is_altjvm();
// -Dsun.java.launcher.pid
static int sun_java_launcher_pid() { return _sun_java_launcher_pid; }
--- a/hotspot/src/share/vm/utilities/dtrace.hpp Wed Feb 05 08:57:33 2014 -0800
+++ b/hotspot/src/share/vm/utilities/dtrace.hpp Fri Feb 07 09:41:36 2014 -0800
@@ -38,23 +38,19 @@
#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG() \
do { volatile size_t dtrace_workaround_tail_call_bug = 1; } while (0)
+#elif defined(LINUX)
+#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
+#elif defined(__APPLE__)
+#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
+#include <sys/types.h>
+#else
+#error "dtrace enabled for unknown os"
+#endif /* defined(SOLARIS) */
+
#define USDT2 1
#include "dtracefiles/hotspot.h"
#include "dtracefiles/hotspot_jni.h"
#include "dtracefiles/hs_private.h"
-#elif defined(LINUX)
-#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
-#define USDT1 1
-#elif defined(__APPLE__)
-#define HS_DTRACE_WORKAROUND_TAIL_CALL_BUG()
-#define USDT2 1
-#include <sys/types.h>
-#include "dtracefiles/hotspot.h"
-#include "dtracefiles/hotspot_jni.h"
-#include "dtracefiles/hs_private.h"
-#else
-#error "dtrace enabled for unknown os"
-#endif /* defined(SOLARIS) */
#else /* defined(DTRACE_ENABLED) */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/hotspot/test/runtime/lambda-features/TestConcreteClassWithAbstractMethod.java Fri Feb 07 09:41:36 2014 -0800
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2014, Oracle and/or its affiliates. All rights reserved.
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
+ *
+ * This code is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU General Public License version 2 only, as
+ * published by the Free Software Foundation.
+ *
+ * This code is distributed in the hope that it will be useful, but WITHOUT
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
+ * version 2 for more details (a copy is included in the LICENSE file that
+ * accompanied this code).
+ *
+ * You should have received a copy of the GNU General Public License version
+ * 2 along with this work; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
+ *
+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
+ * or visit www.oracle.com if you need additional information or have any
+ * questions.
+ *
+ */
+
+/*
+ * @test
+ * @bug 8032010
+ * @summary method lookup on an abstract method in a concrete class should be successful
+ * @run main TestConcreteClassWithAbstractMethod
+ */
+
+import jdk.internal.org.objectweb.asm.ClassWriter;
+import jdk.internal.org.objectweb.asm.MethodVisitor;
+
+import static jdk.internal.org.objectweb.asm.Opcodes.*;
+
+/*
+ * class T1 { public int m() {} }
+ * class T2 { public abstract int m(); }
+ * class T3 { public int m() {} }
+ *
+ * Call site: T3.test() { invokevirtual T2.m() }
+ * T3.m() should be invoked
+ */
+public class TestConcreteClassWithAbstractMethod {
+ static final String classT1 = "p1.T1";
+ static final String classT2 = "p1.T2";
+ static final String classT3 = "p1.T3";
+
+ static final String callerName = classT3;
+
+ public static void main(String[] args) throws Exception {
+ ClassLoader cl = new ClassLoader() {
+ public Class<?> loadClass(String name) throws ClassNotFoundException {
+ if (findLoadedClass(name) != null) {
+ return findLoadedClass(name);
+ }
+
+ if (classT1.equals(name)) {
+ byte[] classFile = dumpT1();
+ return defineClass(classT1, classFile, 0, classFile.length);
+ }
+ if (classT2.equals(name)) {
+ byte[] classFile = dumpT2();
+ return defineClass(classT2, classFile, 0, classFile.length);
+ }
+ if (classT3.equals(name)) {
+ byte[] classFile = dumpT3();
+ return defineClass(classT3, classFile, 0, classFile.length);
+ }
+
+ return super.loadClass(name);
+ }
+ };
+
+ cl.loadClass(classT1);
+ cl.loadClass(classT2);
+ cl.loadClass(classT3);
+
+ //cl.loadClass(callerName).getDeclaredMethod("m");
+ cl.loadClass(callerName).newInstance();
+
+ int result = (Integer)cl.loadClass(callerName).getDeclaredMethod("test").invoke(null);
+ System.out.println(""+result);
+ }
+
+ public static byte[] dumpT1() {
+ ClassWriter cw = new ClassWriter(0);
+ MethodVisitor mv;
+
+ cw.visit(52, ACC_PUBLIC | ACC_SUPER, "p1/T1", null, "java/lang/Object", null);
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
+ mv.visitCode();
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "java/lang/Object", "<init>", "()V", false);
+ mv.visitInsn(RETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "m", "()I", null, null);
+ mv.visitCode();
+ mv.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("p1/T1.m()");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "print", "(Ljava/lang/String;)V", false);
+ mv.visitIntInsn(BIPUSH, 3);
+ mv.visitInsn(IRETURN);
+ mv.visitMaxs(2, 1);
+ mv.visitEnd();
+ }
+ cw.visitEnd();
+
+ return cw.toByteArray();
+ }
+
+ public static byte[] dumpT2() {
+ ClassWriter cw = new ClassWriter(0);
+ MethodVisitor mv;
+
+ cw.visit(52, ACC_PUBLIC | ACC_SUPER, "p1/T2", null, "p1/T1", null);
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
+ mv.visitCode();
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "p1/T1", "<init>", "()V", false);
+ mv.visitInsn(RETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_ABSTRACT, "m", "()I", null, null);
+ mv.visitEnd();
+ }
+ cw.visitEnd();
+
+ return cw.toByteArray();
+ }
+
+ public static byte[] dumpT3() {
+ ClassWriter cw = new ClassWriter(0);
+ MethodVisitor mv;
+
+ cw.visit(52, ACC_PUBLIC + ACC_SUPER, "p1/T3", null, "p1/T2", null);
+
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "<init>", "()V", null, null);
+ mv.visitCode();
+ mv.visitVarInsn(ALOAD, 0);
+ mv.visitMethodInsn(INVOKESPECIAL, "p1/T2", "<init>", "()V", false);
+ mv.visitInsn(RETURN);
+ mv.visitMaxs(1, 1);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC, "m", "()I", null, null);
+ mv.visitCode();
+ mv.visitFieldInsn(GETSTATIC, "java/lang/System", "out", "Ljava/io/PrintStream;");
+ mv.visitLdcInsn("p1/T3.m()");
+ mv.visitMethodInsn(INVOKEVIRTUAL, "java/io/PrintStream", "print", "(Ljava/lang/String;)V", false);
+ mv.visitIntInsn(BIPUSH, 2);
+ mv.visitInsn(IRETURN);
+ mv.visitMaxs(2, 1);
+ mv.visitEnd();
+ }
+ {
+ mv = cw.visitMethod(ACC_PUBLIC + ACC_STATIC, "test", "()I", null, null);
+ mv.visitCode();
+ mv.visitTypeInsn(NEW, "p1/T3");
+ mv.visitInsn(DUP);
+ mv.visitMethodInsn(INVOKESPECIAL, "p1/T3", "<init>", "()V", false);
+ mv.visitMethodInsn(INVOKEVIRTUAL, "p1/T2", "m", "()I", false);
+ mv.visitInsn(IRETURN);
+ mv.visitMaxs(3, 2);
+ mv.visitEnd();
+ }
+ cw.visitEnd();
+
+ return cw.toByteArray();
+ }
+}