56 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SetVMFlagDCmd>(full_export, true, false));
57 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMDynamicLibrariesDCmd>(full_export, true, false));
58 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMUptimeDCmd>(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));
61 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<FinalizerInfoDCmd>(full_export, true, false));
64 #if INCLUDE_SERVICES // Heap dumping/inspection supported
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));
67 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<SymboltableDCmd>(full_export, true, false));
70 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<StringtableDCmd>(full_export, true, false));
71 #endif // INCLUDE_SERVICES
72 #if INCLUDE_JVMTI
73 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIDataDumpDCmd>(full_export, true, false));
74 #endif // INCLUDE_JVMTI
75 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false));
76 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RotateGCLogDCmd>(full_export, true, false));
77 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassLoaderStatsDCmd>(full_export, true, false));
78 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompileQueueDCmd>(full_export, true, false));
79 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeListDCmd>(full_export, true, false));
80 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeCacheDCmd>(full_export, true, false));
81 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<TouchedMethodsDCmd>(full_export, true, false));
82
83 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesPrintDCmd>(full_export, true, false));
84 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesAddDCmd>(full_export, true, false));
85 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesRemoveDCmd>(full_export, true, false));
86 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesClearDCmd>(full_export, true, false));
87
88 // Enhanced JMX Agent Support
89 // These commands won't be exported via the DiagnosticCommandMBean until an
90 // appropriate permission is created for them
91 uint32_t jmx_agent_export_flags = DCmd_Source_Internal | DCmd_Source_AttachAPI;
92 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStartRemoteDCmd>(jmx_agent_export_flags, true,false));
93 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStartLocalDCmd>(jmx_agent_export_flags, true,false));
94 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStopRemoteDCmd>(jmx_agent_export_flags, true,false));
95 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStatusDCmd>(jmx_agent_export_flags, true,false));
96
806 jvalue* jv = (jvalue*) result.get_value_addr();
807 oop str = (oop) jv->l;
808 if (str != NULL) {
809 char* out = java_lang_String::as_utf8_string(str);
810 if (out) {
811 output()->print_cr("%s", out);
812 return;
813 }
814 }
815 output()->print_cr("Error obtaining management agent status");
816 }
817
818 VMDynamicLibrariesDCmd::VMDynamicLibrariesDCmd(outputStream *output, bool heap_allocated) :
819 DCmd(output, heap_allocated) {
820 // do nothing
821 }
822
823 void VMDynamicLibrariesDCmd::execute(DCmdSource source, TRAPS) {
824 os::print_dll_info(output());
825 output()->cr();
826 }
827
828 void RotateGCLogDCmd::execute(DCmdSource source, TRAPS) {
829 if (UseGCLogFileRotation) {
830 VM_RotateGCLog rotateop(output());
831 VMThread::execute(&rotateop);
832 } else {
833 output()->print_cr("Target VM does not support GC log file rotation.");
834 }
835 }
836
837 void CompileQueueDCmd::execute(DCmdSource source, TRAPS) {
838 VM_PrintCompileQueue printCompileQueueOp(output());
839 VMThread::execute(&printCompileQueueOp);
840 }
841
842 void CodeListDCmd::execute(DCmdSource source, TRAPS) {
843 VM_PrintCodeList printCodeListOp(output());
844 VMThread::execute(&printCodeListOp);
845 }
846
847 void CodeCacheDCmd::execute(DCmdSource source, TRAPS) {
848 VM_PrintCodeCache printCodeCacheOp(output());
849 VMThread::execute(&printCodeCacheOp);
850 }
851
852 void CompilerDirectivesPrintDCmd::execute(DCmdSource source, TRAPS) {
853 DirectivesStack::print(output());
854 }
|
56 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SetVMFlagDCmd>(full_export, true, false));
57 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMDynamicLibrariesDCmd>(full_export, true, false));
58 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<VMUptimeDCmd>(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));
61 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<FinalizerInfoDCmd>(full_export, true, false));
64 #if INCLUDE_SERVICES // Heap dumping/inspection supported
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));
67 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<SymboltableDCmd>(full_export, true, false));
70 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<StringtableDCmd>(full_export, true, false));
71 #endif // INCLUDE_SERVICES
72 #if INCLUDE_JVMTI
73 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JVMTIDataDumpDCmd>(full_export, true, false));
74 #endif // INCLUDE_JVMTI
75 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false));
76 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassLoaderStatsDCmd>(full_export, true, false));
77 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompileQueueDCmd>(full_export, true, false));
78 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeListDCmd>(full_export, true, false));
79 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CodeCacheDCmd>(full_export, true, false));
80 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<TouchedMethodsDCmd>(full_export, true, false));
81
82 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesPrintDCmd>(full_export, true, false));
83 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesAddDCmd>(full_export, true, false));
84 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesRemoveDCmd>(full_export, true, false));
85 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<CompilerDirectivesClearDCmd>(full_export, true, false));
86
87 // Enhanced JMX Agent Support
88 // These commands won't be exported via the DiagnosticCommandMBean until an
89 // appropriate permission is created for them
90 uint32_t jmx_agent_export_flags = DCmd_Source_Internal | DCmd_Source_AttachAPI;
91 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStartRemoteDCmd>(jmx_agent_export_flags, true,false));
92 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStartLocalDCmd>(jmx_agent_export_flags, true,false));
93 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStopRemoteDCmd>(jmx_agent_export_flags, true,false));
94 DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<JMXStatusDCmd>(jmx_agent_export_flags, true,false));
95
805 jvalue* jv = (jvalue*) result.get_value_addr();
806 oop str = (oop) jv->l;
807 if (str != NULL) {
808 char* out = java_lang_String::as_utf8_string(str);
809 if (out) {
810 output()->print_cr("%s", out);
811 return;
812 }
813 }
814 output()->print_cr("Error obtaining management agent status");
815 }
816
817 VMDynamicLibrariesDCmd::VMDynamicLibrariesDCmd(outputStream *output, bool heap_allocated) :
818 DCmd(output, heap_allocated) {
819 // do nothing
820 }
821
822 void VMDynamicLibrariesDCmd::execute(DCmdSource source, TRAPS) {
823 os::print_dll_info(output());
824 output()->cr();
825 }
826
827 void CompileQueueDCmd::execute(DCmdSource source, TRAPS) {
828 VM_PrintCompileQueue printCompileQueueOp(output());
829 VMThread::execute(&printCompileQueueOp);
830 }
831
832 void CodeListDCmd::execute(DCmdSource source, TRAPS) {
833 VM_PrintCodeList printCodeListOp(output());
834 VMThread::execute(&printCodeListOp);
835 }
836
837 void CodeCacheDCmd::execute(DCmdSource source, TRAPS) {
838 VM_PrintCodeCache printCodeCacheOp(output());
839 VMThread::execute(&printCodeCacheOp);
840 }
841
842 void CompilerDirectivesPrintDCmd::execute(DCmdSource source, TRAPS) {
843 DirectivesStack::print(output());
844 }
|