changeset 22742:8a91781d5afc

added JVMCI specific option TraceClassLoadingStack to see why classes are loaded
author Doug Simon <doug.simon@oracle.com>
date Thu, 26 Nov 2015 14:49:10 +0100
parents e9424bc1e288
children f23c3e2022d9
files src/share/vm/classfile/classFileParser.cpp src/share/vm/jvmci/jvmci_globals.hpp
diffstat 2 files changed, 9 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/classfile/classFileParser.cpp	Thu Nov 26 02:28:38 2015 +0100
+++ b/src/share/vm/classfile/classFileParser.cpp	Thu Nov 26 14:49:10 2015 +0100
@@ -4216,7 +4216,12 @@
                    InstanceKlass::cast(class_loader->klass())->external_name());
       }
     }
-
+#if INCLUDE_JVMCI
+    if (TraceClassLoadingStack) {
+      // useful when investigating why a class is loaded
+      JavaThread::current()->print_stack_on(tty);
+    }
+#endif
     if (TraceClassResolution) {
       ResourceMark rm;
       // print out the superclass.
--- a/src/share/vm/jvmci/jvmci_globals.hpp	Thu Nov 26 02:28:38 2015 +0100
+++ b/src/share/vm/jvmci/jvmci_globals.hpp	Thu Nov 26 14:49:10 2015 +0100
@@ -93,6 +93,9 @@
                                                                             \
   develop(bool, TraceUncollectedSpeculations, false,                        \
           "Print message when a failed speculation was not collected")      \
+  product(intx, TraceClassLoadingStack, false,                              \
+          "Print stack when loading a class")                               \
+                                                                            \
 
 
 // Read default values for JVMCI globals