/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* under the terms of the GNU General Public License version 2 only, as
* published by the Free Software Foundation.
*
* This code is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
* version 2 for more details (a copy is included in the LICENSE file that
* accompanied this code).
*
* You should have received a copy of the GNU General Public License version
* 2 along with this work; if not, write to the Free Software Foundation,
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
* or visit www.oracle.com if you need additional information or have any
* questions.
*
*/
#include "runtime/arguments.hpp"
#include "classfile/vmSymbols.hpp"
#include "utilities/ostream.hpp"
#include "runtime/vm_version.hpp"
#include "runtime/vmThread.hpp"
#include "services/diagnosticArgument.hpp"
#include "services/diagnosticCommand.hpp"
#include "services/diagnosticFramework.hpp"
#include "services/diagnosticCommand_ext.hpp"
protected:
public:
static const char* description() {
return "For more information about a specific command use 'help <command>'. "
"With no argument this will show a list of available commands. "
"'help all' will show help for all commands.";
}
static int num_arguments();
};
public:
static const char* description() {
return "Print JVM version information.";
}
static int num_arguments() { return 0; }
};
public:
static const char* description() {
return "Print the command line used to start this VM instance.";
}
static int num_arguments() { return 0; }
}
};
// See also: get_system_properties in attachListener.cpp
public:
static const char* description() {
return "Print system properties.";
}
static const char* impact() {
return "Low";
}
static int num_arguments() { return 0; }
};
// See also: print_flag in attachListener.cpp
protected:
public:
static const char* description() {
return "Print VM flag options and their current values.";
}
static const char* impact() {
return "Low";
}
static int num_arguments();
};
protected:
public:
static const char* description() {
return "Print VM uptime.";
}
static const char* impact() {
return "Low";
}
static int num_arguments();
};
public:
static const char* description() {
return "Call java.lang.System.gc().";
}
static const char* impact() {
return "Medium: Depends on Java heap size and content.";
}
static int num_arguments() { return 0; }
};
public:
static const char* description() {
return "Call java.lang.System.runFinalization().";
}
static const char* impact() {
return "Medium: Depends on Java content.";
}
static int num_arguments() { return 0; }
};
#ifndef SERVICES_KERNEL // Heap dumping not supported
// See also: dump_heap in attachListener.cpp
protected:
public:
static const char* name() {
return "GC.heap_dump";
}
static const char* description() {
return "Generate a HPROF format dump of the Java heap.";
}
static const char* impact() {
return "High: Depends on Java heap size and content. "
"Request a full GC unless the '-all' option is specified.";
}
static int num_arguments();
};
#endif // SERVICES_KERNEL
// See also: inspeactheap in attachListener.cpp
protected:
public:
static const char* name() {
return "GC.class_histogram";
}
static const char* description() {
return "Provide statistics about the Java heap usage.";
}
static const char* impact() {
return "High: Depends on Java heap size and content.";
}
static int num_arguments();
};
// See also: thread_dump in attachListener.cpp
protected:
public:
static const char* description() {
return "Print all threads with stacktraces.";
}
static const char* impact() {
return "Medium: Depends on the number of threads.";
}
static int num_arguments();
};
// Enhanced JMX Agent support
// Explicitly list all properties that could be
// passed to Agent.startRemoteManagementAgent()
// com.sun.management is omitted
// JDP support
// as property value to java level.
public:
static const char *name() {
return "ManagementAgent.start";
}
static const char *description() {
return "Start remote management agent.";
}
static int num_arguments();
};
// Explicitly request start of local agent,
// it will not be started by start dcmd
public:
static const char *name() {
return "ManagementAgent.start_local";
}
static const char *description() {
return "Start local management agent.";
}
};
public:
// Do Nothing
}
static const char *name() {
return "ManagementAgent.stop";
}
static const char *description() {
return "Stop remote management agent.";
}
};
#endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP