diff -r 16609197022c -r dfa02b3f728c src/hotspot/share/runtime/thread.cpp --- a/src/hotspot/share/runtime/thread.cpp Fri Nov 16 23:39:51 2018 +0100 +++ b/src/hotspot/share/runtime/thread.cpp Fri Nov 16 16:10:25 2018 -0800 @@ -4088,6 +4088,17 @@ JvmtiExport::enter_onload_phase(); for (agent = Arguments::agents(); agent != NULL; agent = agent->next()) { + // CDS dumping does not support native JVMTI agent. + // CDS dumping supports Java agent if the AllowArchivingWithJavaAgent diagnostic option is specified. + if (DumpSharedSpaces) { + if(!agent->is_instrument_lib()) { + vm_exit_during_cds_dumping("CDS dumping does not support native JVMTI agent, name", agent->name()); + } else if (!AllowArchivingWithJavaAgent) { + vm_exit_during_cds_dumping( + "Must enable AllowArchivingWithJavaAgent in order to run Java agent during CDS dumping"); + } + } + OnLoadEntry_t on_load_entry = lookup_agent_on_load(agent); if (on_load_entry != NULL) { @@ -4100,6 +4111,7 @@ vm_exit_during_initialization("Could not find Agent_OnLoad function in the agent library", agent->name()); } } + JvmtiExport::enter_primordial_phase(); }