26 #include "classfile/classLoaderStats.hpp" |
26 #include "classfile/classLoaderStats.hpp" |
27 #include "classfile/compactHashtable.hpp" |
27 #include "classfile/compactHashtable.hpp" |
28 #include "compiler/compileBroker.hpp" |
28 #include "compiler/compileBroker.hpp" |
29 #include "compiler/directivesParser.hpp" |
29 #include "compiler/directivesParser.hpp" |
30 #include "gc/shared/vmGCOperations.hpp" |
30 #include "gc/shared/vmGCOperations.hpp" |
|
31 #include "memory/resourceArea.hpp" |
31 #include "oops/oop.inline.hpp" |
32 #include "oops/oop.inline.hpp" |
32 #include "runtime/globals.hpp" |
33 #include "runtime/globals.hpp" |
33 #include "runtime/javaCalls.hpp" |
34 #include "runtime/javaCalls.hpp" |
34 #include "runtime/os.hpp" |
35 #include "runtime/os.hpp" |
35 #include "services/diagnosticArgument.hpp" |
36 #include "services/diagnosticArgument.hpp" |
59 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMInfoDCmd>(full_export, true, false)); |
60 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMInfoDCmd>(full_export, true, false)); |
60 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SystemGCDCmd>(full_export, true, false)); |
61 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SystemGCDCmd>(full_export, true, false)); |
61 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RunFinalizationDCmd>(full_export, true, false)); |
62 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RunFinalizationDCmd>(full_export, true, false)); |
62 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapInfoDCmd>(full_export, true, false)); |
63 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapInfoDCmd>(full_export, true, false)); |
63 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<FinalizerInfoDCmd>(full_export, true, false)); |
64 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<FinalizerInfoDCmd>(full_export, true, false)); |
64 #if INCLUDE_SERVICES // Heap dumping/inspection supported |
65 #if INCLUDE_SERVICES |
65 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapDumpDCmd>(DCmd_Source_Internal | DCmd_Source_AttachAPI, true, false)); |
66 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)); |
67 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHistogramDCmd>(full_export, true, false)); |
67 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassStatsDCmd>(full_export, true, false)); |
68 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassStatsDCmd>(full_export, true, false)); |
68 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHierarchyDCmd>(full_export, true, false)); |
69 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHierarchyDCmd>(full_export, true, false)); |
69 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SymboltableDCmd>(full_export, true, false)); |
70 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SymboltableDCmd>(full_export, true, false)); |
70 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<StringtableDCmd>(full_export, true, false)); |
71 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<StringtableDCmd>(full_export, true, false)); |
|
72 #if INCLUDE_JVMTI // Both JVMTI and SERVICES have to be enabled to have this dcmd |
|
73 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIAgentLoadDCmd>(full_export, true, false)); |
|
74 #endif // INCLUDE_JVMTI |
71 #endif // INCLUDE_SERVICES |
75 #endif // INCLUDE_SERVICES |
72 #if INCLUDE_JVMTI |
76 #if INCLUDE_JVMTI |
73 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIDataDumpDCmd>(full_export, true, false)); |
77 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 |
78 #endif // INCLUDE_JVMTI |
76 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false)); |
79 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false)); |
77 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassLoaderStatsDCmd>(full_export, true, false)); |
80 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassLoaderStatsDCmd>(full_export, true, false)); |
78 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompileQueueDCmd>(full_export, true, false)); |
81 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompileQueueDCmd>(full_export, true, false)); |
79 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeListDCmd>(full_export, true, false)); |
82 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeListDCmd>(full_export, true, false)); |
253 if (JvmtiExport::should_post_data_dump()) { |
256 if (JvmtiExport::should_post_data_dump()) { |
254 JvmtiExport::post_data_dump(); |
257 JvmtiExport::post_data_dump(); |
255 } |
258 } |
256 } |
259 } |
257 |
260 |
|
261 #if INCLUDE_SERVICES |
258 JVMTIAgentLoadDCmd::JVMTIAgentLoadDCmd(outputStream* output, bool heap) : |
262 JVMTIAgentLoadDCmd::JVMTIAgentLoadDCmd(outputStream* output, bool heap) : |
259 DCmdWithParser(output, heap), |
263 DCmdWithParser(output, heap), |
260 _libpath("library path", "Absolute path of the JVMTI agent to load.", |
264 _libpath("library path", "Absolute path of the JVMTI agent to load.", |
261 "STRING", true), |
265 "STRING", true), |
262 _option("agent option", "Option string to pass the agent.", "STRING", false) { |
266 _option("agent option", "Option string to pass the agent.", "STRING", false) { |