src/share/vm/services/diagnosticCommand.hpp
Print this page
*** 273,297 ****
class ClassHierarchyDCmd : public DCmdWithParser {
protected:
DCmdArgument<bool> _print_interfaces; // true if inherited interfaces should be printed.
! DCmdArgument<bool> _print_subclasses; // true subclasses of specified classname should be printed.
DCmdArgument<char*> _classname; // Optional single class name whose hierarchy should be printed.
public:
ClassHierarchyDCmd(outputStream* output, bool heap);
static const char* name() {
return "VM.class_hierarchy";
}
static const char* description() {
return "Print a list of all loaded classes, indented to show the class hiearchy. "
! "The name of each class is followed by the Klass* of its ClassLoader, "
"or \"null\" if loaded by the bootstrap class loader.";
}
static const char* impact() {
return "Medium: Depends on number of loaded classes.";
}
static int num_arguments();
virtual void execute(DCmdSource source, TRAPS);
};
// See also: thread_dump in attachListener.cpp
--- 273,302 ----
class ClassHierarchyDCmd : public DCmdWithParser {
protected:
DCmdArgument<bool> _print_interfaces; // true if inherited interfaces should be printed.
! DCmdArgument<bool> _print_subclasses; // true if subclasses of the specified classname should be printed.
DCmdArgument<char*> _classname; // Optional single class name whose hierarchy should be printed.
public:
ClassHierarchyDCmd(outputStream* output, bool heap);
static const char* name() {
return "VM.class_hierarchy";
}
static const char* description() {
return "Print a list of all loaded classes, indented to show the class hiearchy. "
! "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
"or \"null\" if loaded by the bootstrap class loader.";
}
static const char* impact() {
return "Medium: Depends on number of loaded classes.";
}
+ 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