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