< prev index next >

src/hotspot/share/services/diagnosticCommand.hpp

Print this page




 408   static const char* name() {
 409     return "VM.class_hierarchy";
 410   }
 411   static const char* description() {
 412     return "Print a list of all loaded classes, indented to show the class hiearchy. "
 413            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
 414            "or \"null\" if loaded by the bootstrap class loader.";
 415   }
 416   static const char* impact() {
 417       return "Medium: Depends on number of loaded classes.";
 418   }
 419   static const JavaPermission permission() {
 420     JavaPermission p = {"java.lang.management.ManagementPermission",
 421                         "monitor", NULL};
 422     return p;
 423   }
 424   static int num_arguments();
 425   virtual void execute(DCmdSource source, TRAPS);
 426 };
 427 


























 428 class TouchedMethodsDCmd : public DCmdWithParser {
 429 public:
 430   TouchedMethodsDCmd(outputStream* output, bool heap);
 431   static const char* name() {
 432     return "VM.print_touched_methods";
 433   }
 434   static const char* description() {
 435     return "Print all methods that have ever been touched during the lifetime of this JVM.";
 436   }
 437   static const char* impact() {
 438     return "Medium: Depends on Java content.";
 439   }
 440   static int num_arguments();
 441   virtual void execute(DCmdSource source, TRAPS);
 442 };
 443 
 444 // See also: thread_dump in attachListener.cpp
 445 class ThreadDumpDCmd : public DCmdWithParser {
 446 protected:
 447   DCmdArgument<bool> _locks;




 408   static const char* name() {
 409     return "VM.class_hierarchy";
 410   }
 411   static const char* description() {
 412     return "Print a list of all loaded classes, indented to show the class hiearchy. "
 413            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
 414            "or \"null\" if loaded by the bootstrap class loader.";
 415   }
 416   static const char* impact() {
 417       return "Medium: Depends on number of loaded classes.";
 418   }
 419   static const JavaPermission permission() {
 420     JavaPermission p = {"java.lang.management.ManagementPermission",
 421                         "monitor", NULL};
 422     return p;
 423   }
 424   static int num_arguments();
 425   virtual void execute(DCmdSource source, TRAPS);
 426 };
 427 
 428 class PrintClassLayoutDCmd : public DCmdWithParser {
 429 protected:
 430   DCmdArgument<char*> _classname; // lass name whose layout should be printed.
 431 public:
 432   PrintClassLayoutDCmd(outputStream* output, bool heap);
 433   static const char* name() {
 434     return "VM.class_print_layout";
 435   }
 436   static const char* description() {
 437     return "Print the layout of an instance of a class, including flattened fields. "
 438            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
 439            "or \"null\" if loaded by the bootstrap class loader.";
 440   }
 441   static const char* impact() {
 442       return "Medium: Depends on number of loaded classes.";
 443   }
 444   static const JavaPermission permission() {
 445     JavaPermission p = {"java.lang.management.ManagementPermission",
 446                         "monitor", NULL};
 447     return p;
 448   }
 449   static int num_arguments();
 450   virtual void execute(DCmdSource source, TRAPS);
 451 };
 452 
 453 
 454 class TouchedMethodsDCmd : public DCmdWithParser {
 455 public:
 456   TouchedMethodsDCmd(outputStream* output, bool heap);
 457   static const char* name() {
 458     return "VM.print_touched_methods";
 459   }
 460   static const char* description() {
 461     return "Print all methods that have ever been touched during the lifetime of this JVM.";
 462   }
 463   static const char* impact() {
 464     return "Medium: Depends on Java content.";
 465   }
 466   static int num_arguments();
 467   virtual void execute(DCmdSource source, TRAPS);
 468 };
 469 
 470 // See also: thread_dump in attachListener.cpp
 471 class ThreadDumpDCmd : public DCmdWithParser {
 472 protected:
 473   DCmdArgument<bool> _locks;


< prev index next >