# HG changeset patch # User Doug Simon # Date 1448545750 -3600 # Node ID 8a91781d5afc434fdaed78f59b98532de501f409 # Parent e9424bc1e288a646e1c38a398014fb91b2f3bc18 added JVMCI specific option TraceClassLoadingStack to see why classes are loaded diff -r e9424bc1e288 -r 8a91781d5afc src/share/vm/classfile/classFileParser.cpp --- 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. diff -r e9424bc1e288 -r 8a91781d5afc src/share/vm/jvmci/jvmci_globals.hpp --- 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