hotspot/src/share/vm/services/diagnosticCommand.cpp
changeset 37195 88b6f1271f64
parent 36597 ee256e343585
child 37248 11a660dbbb8e
equal deleted inserted replaced
37194:96cc74bd293b 37195:88b6f1271f64
    59   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMInfoDCmd>(full_export, true, false));
    59   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMInfoDCmd>(full_export, true, false));
    60   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SystemGCDCmd>(full_export, true, false));
    60   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SystemGCDCmd>(full_export, true, false));
    61   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RunFinalizationDCmd>(full_export, true, false));
    61   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RunFinalizationDCmd>(full_export, true, false));
    62   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapInfoDCmd>(full_export, true, false));
    62   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapInfoDCmd>(full_export, true, false));
    63   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<FinalizerInfoDCmd>(full_export, true, false));
    63   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<FinalizerInfoDCmd>(full_export, true, false));
    64 #if INCLUDE_SERVICES // Heap dumping/inspection supported
    64 #if INCLUDE_SERVICES
    65   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapDumpDCmd>(DCmd_Source_Internal | DCmd_Source_AttachAPI, true, false));
    65   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapDumpDCmd>(DCmd_Source_Internal | DCmd_Source_AttachAPI, true, false));
    66   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHistogramDCmd>(full_export, true, false));
    66   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHistogramDCmd>(full_export, true, false));
    67   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassStatsDCmd>(full_export, true, false));
    67   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassStatsDCmd>(full_export, true, false));
    68   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHierarchyDCmd>(full_export, true, false));
    68   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHierarchyDCmd>(full_export, true, false));
    69   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SymboltableDCmd>(full_export, true, false));
    69   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SymboltableDCmd>(full_export, true, false));
    70   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<StringtableDCmd>(full_export, true, false));
    70   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<StringtableDCmd>(full_export, true, false));
       
    71 #if INCLUDE_JVMTI // Both JVMTI and SERVICES have to be enabled to have this dcmd
       
    72   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIAgentLoadDCmd>(full_export, true, false));
       
    73 #endif // INCLUDE_JVMTI
    71 #endif // INCLUDE_SERVICES
    74 #endif // INCLUDE_SERVICES
    72 #if INCLUDE_JVMTI
    75 #if INCLUDE_JVMTI
    73   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIDataDumpDCmd>(full_export, true, false));
    76   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIDataDumpDCmd>(full_export, true, false));
    74   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIAgentLoadDCmd>(full_export, true, false));
       
    75 #endif // INCLUDE_JVMTI
    77 #endif // INCLUDE_JVMTI
    76   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false));
    78   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false));
    77   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassLoaderStatsDCmd>(full_export, true, false));
    79   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassLoaderStatsDCmd>(full_export, true, false));
    78   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompileQueueDCmd>(full_export, true, false));
    80   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompileQueueDCmd>(full_export, true, false));
    79   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeListDCmd>(full_export, true, false));
    81   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeListDCmd>(full_export, true, false));
   253   if (JvmtiExport::should_post_data_dump()) {
   255   if (JvmtiExport::should_post_data_dump()) {
   254     JvmtiExport::post_data_dump();
   256     JvmtiExport::post_data_dump();
   255   }
   257   }
   256 }
   258 }
   257 
   259 
       
   260 #if INCLUDE_SERVICES
   258 JVMTIAgentLoadDCmd::JVMTIAgentLoadDCmd(outputStream* output, bool heap) :
   261 JVMTIAgentLoadDCmd::JVMTIAgentLoadDCmd(outputStream* output, bool heap) :
   259                                        DCmdWithParser(output, heap),
   262                                        DCmdWithParser(output, heap),
   260   _libpath("library path", "Absolute path of the JVMTI agent to load.",
   263   _libpath("library path", "Absolute path of the JVMTI agent to load.",
   261            "STRING", true),
   264            "STRING", true),
   262   _option("agent option", "Option string to pass the agent.", "STRING", false) {
   265   _option("agent option", "Option string to pass the agent.", "STRING", false) {
   312     return dcmd->_dcmdparser.num_arguments();
   315     return dcmd->_dcmdparser.num_arguments();
   313   } else {
   316   } else {
   314     return 0;
   317     return 0;
   315   }
   318   }
   316 }
   319 }
       
   320 #endif // INCLUDE_SERVICES
   317 
   321 
   318 void PrintSystemPropertiesDCmd::execute(DCmdSource source, TRAPS) {
   322 void PrintSystemPropertiesDCmd::execute(DCmdSource source, TRAPS) {
   319   // load sun.misc.VMSupport
   323   // load sun.misc.VMSupport
   320   Symbol* klass = vmSymbols::sun_misc_VMSupport();
   324   Symbol* klass = vmSymbols::sun_misc_VMSupport();
   321   Klass* k = SystemDictionary::resolve_or_fail(klass, true, CHECK);
   325   Klass* k = SystemDictionary::resolve_or_fail(klass, true, CHECK);