< prev index next >

src/share/vm/services/diagnosticCommand.cpp

Print this page

        

@@ -29,10 +29,11 @@
 #include "services/diagnosticCommand.hpp"
 #include "services/diagnosticFramework.hpp"
 #include "services/heapDumper.hpp"
 #include "services/management.hpp"
 #include "utilities/macros.hpp"
+#include "evtrace/traceEvents.hpp"
 
 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
 
 void DCmdRegistrant::register_dcmds(){
   // Registration of the diagnostic commands

@@ -54,10 +55,11 @@
   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHistogramDCmd>(full_export, true, false));
   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassStatsDCmd>(full_export, true, false));
 #endif // INCLUDE_SERVICES
   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ThreadDumpDCmd>(full_export, true, false));
   DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RotateGCLogDCmd>(full_export, true, false));
+  DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<EventTracingMarkerDCmd>(full_export, true, false));
 
   // Enhanced JMX Agent Support
   // These commands won't be exported via the DiagnosticCommandMBean until an
   // appropriate permission is created for them
   uint32_t jmx_agent_export_flags = DCmd_Source_Internal | DCmd_Source_AttachAPI;

@@ -422,10 +424,32 @@
   if (dcmd != NULL) {
     DCmdMark mark(dcmd);
     return dcmd->_dcmdparser.num_arguments();
   } else {
     return 0;
+  }
+}
+
+EventTracingMarkerDCmd::EventTracingMarkerDCmd(outputStream* output, bool heap)
+  : DCmdWithParser(output, heap),
+    _label("label", "description for the marker", "STRING", true)
+{
+  _dcmdparser.add_dcmd_argument(&_label);
+}
+
+void EventTracingMarkerDCmd::execute(DCmdSource source, TRAPS) {
+  TraceEvents::write_marker(_label.value());
+}
+
+int EventTracingMarkerDCmd::num_arguments() {
+  ResourceMark rm;
+  EventTracingMarkerDCmd* dcmd = new EventTracingMarkerDCmd(NULL, false);
+  if (dcmd != NULL) {
+    DCmdMark mark(dcmd);
+    return dcmd->_dcmdparser.num_arguments();
+  } else {
+    return 0;
   }
 }
 
 // Enhanced JMX Agent support
 
< prev index next >