--- old/src/share/vm/services/diagnosticCommand.cpp 2016-10-25 10:40:12.685779848 +0200 +++ new/src/share/vm/services/diagnosticCommand.cpp 2016-10-25 10:40:12.637779816 +0200 @@ -31,6 +31,7 @@ #include "services/heapDumper.hpp" #include "services/management.hpp" #include "utilities/macros.hpp" +#include "evtrace/traceEvents.hpp" PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC @@ -56,6 +57,7 @@ #endif // INCLUDE_SERVICES DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); + DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); // Enhanced JMX Agent Support // These commands won't be exported via the DiagnosticCommandMBean until an @@ -422,6 +424,28 @@ 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; }