src/share/vm/services/diagnosticCommand.hpp
Print this page
*** 48,58 ****
"With no argument this will show a list of available commands. "
"'help all' will show help for all commands.";
}
static const char* impact() { return "Low"; }
static int num_arguments();
! virtual void execute(TRAPS);
};
class VersionDCmd : public DCmd {
public:
VersionDCmd(outputStream* output, bool heap) : DCmd(output,heap) { }
--- 48,58 ----
"With no argument this will show a list of available commands. "
"'help all' will show help for all commands.";
}
static const char* impact() { return "Low"; }
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
class VersionDCmd : public DCmd {
public:
VersionDCmd(outputStream* output, bool heap) : DCmd(output,heap) { }
*** 59,70 ****
static const char* name() { return "VM.version"; }
static const char* description() {
return "Print JVM version information.";
}
static const char* impact() { return "Low"; }
static int num_arguments() { return 0; }
! virtual void execute(TRAPS);
};
class CommandLineDCmd : public DCmd {
public:
CommandLineDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
--- 59,75 ----
static const char* name() { return "VM.version"; }
static const char* description() {
return "Print JVM version information.";
}
static const char* impact() { return "Low"; }
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.util.PropertyPermission",
+ "java.vm.version", "read"};
+ return p;
+ }
static int num_arguments() { return 0; }
! virtual void execute(DCmdSource source, TRAPS);
};
class CommandLineDCmd : public DCmd {
public:
CommandLineDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
*** 71,82 ****
static const char* name() { return "VM.command_line"; }
static const char* description() {
return "Print the command line used to start this VM instance.";
}
static const char* impact() { return "Low"; }
static int num_arguments() { return 0; }
! virtual void execute(TRAPS) {
Arguments::print_on(_output);
}
};
// See also: get_system_properties in attachListener.cpp
--- 76,92 ----
static const char* name() { return "VM.command_line"; }
static const char* description() {
return "Print the command line used to start this VM instance.";
}
static const char* impact() { return "Low"; }
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.lang.management.ManagementPermission",
+ "monitor", NULL};
+ return p;
+ }
static int num_arguments() { return 0; }
! virtual void execute(DCmdSource source, TRAPS) {
Arguments::print_on(_output);
}
};
// See also: get_system_properties in attachListener.cpp
*** 88,99 ****
return "Print system properties.";
}
static const char* impact() {
return "Low";
}
static int num_arguments() { return 0; }
! virtual void execute(TRAPS);
};
// See also: print_flag in attachListener.cpp
class PrintVMFlagsDCmd : public DCmdWithParser {
protected:
--- 98,114 ----
return "Print system properties.";
}
static const char* impact() {
return "Low";
}
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.util.PropertyPermission",
+ "*", "read"};
+ return p;
+ }
static int num_arguments() { return 0; }
! virtual void execute(DCmdSource source, TRAPS);
};
// See also: print_flag in attachListener.cpp
class PrintVMFlagsDCmd : public DCmdWithParser {
protected:
*** 105,116 ****
return "Print VM flag options and their current values.";
}
static const char* impact() {
return "Low";
}
static int num_arguments();
! virtual void execute(TRAPS);
};
class VMUptimeDCmd : public DCmdWithParser {
protected:
DCmdArgument<bool> _date;
--- 120,136 ----
return "Print VM flag options and their current values.";
}
static const char* impact() {
return "Low";
}
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.lang.management.ManagementPermission",
+ "monitor", NULL};
+ return p;
+ }
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
class VMUptimeDCmd : public DCmdWithParser {
protected:
DCmdArgument<bool> _date;
*** 122,132 ****
}
static const char* impact() {
return "Low";
}
static int num_arguments();
! virtual void execute(TRAPS);
};
class SystemGCDCmd : public DCmd {
public:
SystemGCDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
--- 142,152 ----
}
static const char* impact() {
return "Low";
}
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
class SystemGCDCmd : public DCmd {
public:
SystemGCDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
*** 136,146 ****
}
static const char* impact() {
return "Medium: Depends on Java heap size and content.";
}
static int num_arguments() { return 0; }
! virtual void execute(TRAPS);
};
class RunFinalizationDCmd : public DCmd {
public:
RunFinalizationDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
--- 156,166 ----
}
static const char* impact() {
return "Medium: Depends on Java heap size and content.";
}
static int num_arguments() { return 0; }
! virtual void execute(DCmdSource source, TRAPS);
};
class RunFinalizationDCmd : public DCmd {
public:
RunFinalizationDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
*** 150,160 ****
}
static const char* impact() {
return "Medium: Depends on Java content.";
}
static int num_arguments() { return 0; }
! virtual void execute(TRAPS);
};
#if INCLUDE_SERVICES // Heap dumping supported
// See also: dump_heap in attachListener.cpp
class HeapDumpDCmd : public DCmdWithParser {
--- 170,180 ----
}
static const char* impact() {
return "Medium: Depends on Java content.";
}
static int num_arguments() { return 0; }
! virtual void execute(DCmdSource source, TRAPS);
};
#if INCLUDE_SERVICES // Heap dumping supported
// See also: dump_heap in attachListener.cpp
class HeapDumpDCmd : public DCmdWithParser {
*** 171,182 ****
}
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();
! virtual void execute(TRAPS);
};
#endif // INCLUDE_SERVICES
// See also: inspeactheap in attachListener.cpp
class ClassHistogramDCmd : public DCmdWithParser {
--- 191,207 ----
}
static const char* impact() {
return "High: Depends on Java heap size and content. "
"Request a full GC unless the '-all' option is specified.";
}
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.lang.management.ManagementPermission",
+ "monitor", NULL};
+ return p;
+ }
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
#endif // INCLUDE_SERVICES
// See also: inspeactheap in attachListener.cpp
class ClassHistogramDCmd : public DCmdWithParser {
*** 191,202 ****
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();
! virtual void execute(TRAPS);
};
// See also: thread_dump in attachListener.cpp
class ThreadDumpDCmd : public DCmdWithParser {
protected:
--- 216,232 ----
return "Provide statistics about the Java heap usage.";
}
static const char* impact() {
return "High: Depends on Java heap size and content.";
}
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.lang.management.ManagementPermission",
+ "monitor", NULL};
+ return p;
+ }
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
// See also: thread_dump in attachListener.cpp
class ThreadDumpDCmd : public DCmdWithParser {
protected:
*** 208,219 ****
return "Print all threads with stacktraces.";
}
static const char* impact() {
return "Medium: Depends on the number of threads.";
}
static int num_arguments();
! virtual void execute(TRAPS);
};
// Enhanced JMX Agent support
class JMXStartRemoteDCmd : public DCmdWithParser {
--- 238,254 ----
return "Print all threads with stacktraces.";
}
static const char* impact() {
return "Medium: Depends on the number of threads.";
}
+ static const JavaPermission permission() {
+ JavaPermission p = {"java.lang.management.ManagementPermission",
+ "monitor", NULL};
+ return p;
+ }
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
// Enhanced JMX Agent support
class JMXStartRemoteDCmd : public DCmdWithParser {
*** 247,257 ****
return "Start remote management agent.";
}
static int num_arguments();
! virtual void execute(TRAPS);
};
class JMXStartLocalDCmd : public DCmd {
--- 282,292 ----
return "Start remote management agent.";
}
static int num_arguments();
! virtual void execute(DCmdSource source, TRAPS);
};
class JMXStartLocalDCmd : public DCmd {
*** 268,278 ****
static const char *description() {
return "Start local management agent.";
}
! virtual void execute(TRAPS);
};
class JMXStopRemoteDCmd : public DCmd {
public:
--- 303,313 ----
static const char *description() {
return "Start local management agent.";
}
! virtual void execute(DCmdSource source, TRAPS);
};
class JMXStopRemoteDCmd : public DCmd {
public:
*** 287,295 ****
static const char *description() {
return "Stop remote management agent.";
}
! virtual void execute(TRAPS);
};
#endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP
--- 322,330 ----
static const char *description() {
return "Stop remote management agent.";
}
! virtual void execute(DCmdSource source, TRAPS);
};
#endif // SHARE_VM_SERVICES_DIAGNOSTICCOMMAND_HPP