< prev index next >

src/hotspot/share/services/diagnosticCommand.hpp

Print this page

369   ClassHierarchyDCmd(outputStream* output, bool heap);
370   static const char* name() {
371     return "VM.class_hierarchy";
372   }
373   static const char* description() {
374     return "Print a list of all loaded classes, indented to show the class hierarchy. "
375            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
376            "or \"null\" if loaded by the bootstrap class loader.";
377   }
378   static const char* impact() {
379       return "Medium: Depends on number of loaded classes.";
380   }
381   static const JavaPermission permission() {
382     JavaPermission p = {"java.lang.management.ManagementPermission",
383                         "monitor", NULL};
384     return p;
385   }
386   virtual void execute(DCmdSource source, TRAPS);
387 };
388 

























389 #if INCLUDE_CDS
390 class DumpSharedArchiveDCmd: public DCmdWithParser {
391 protected:
392   DCmdArgument<char*> _suboption;   // option of VM.cds
393   DCmdArgument<char*> _filename;    // file name, optional
394 public:
395   DumpSharedArchiveDCmd(outputStream* output, bool heap);
396   static const char* name() {
397     return "VM.cds";
398   }
399   static const char* description() {
400     return "Dump a static or dynamic shared archive including all shareable classes";
401   }
402   static const char* impact() {
403     return "Medium: Pause time depends on number of loaded classes";
404   }
405   static const JavaPermission permission() {
406     JavaPermission p = {"java.lang.management.ManagementPermission",
407                         "monitor", NULL};
408     return p;

369   ClassHierarchyDCmd(outputStream* output, bool heap);
370   static const char* name() {
371     return "VM.class_hierarchy";
372   }
373   static const char* description() {
374     return "Print a list of all loaded classes, indented to show the class hierarchy. "
375            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
376            "or \"null\" if loaded by the bootstrap class loader.";
377   }
378   static const char* impact() {
379       return "Medium: Depends on number of loaded classes.";
380   }
381   static const JavaPermission permission() {
382     JavaPermission p = {"java.lang.management.ManagementPermission",
383                         "monitor", NULL};
384     return p;
385   }
386   virtual void execute(DCmdSource source, TRAPS);
387 };
388 
389 class PrintClassLayoutDCmd : public DCmdWithParser {
390 protected:
391   DCmdArgument<char*> _classname; // lass name whose layout should be printed.
392 public:
393   PrintClassLayoutDCmd(outputStream* output, bool heap);
394   static const char* name() {
395     return "VM.class_print_layout";
396   }
397   static const char* description() {
398     return "Print the layout of an instance of a class, including inlined fields. "
399            "The name of each class is followed by the ClassLoaderData* of its ClassLoader, "
400            "or \"null\" if loaded by the bootstrap class loader.";
401   }
402   static const char* impact() {
403       return "Medium: Depends on number of loaded classes.";
404   }
405   static const JavaPermission permission() {
406     JavaPermission p = {"java.lang.management.ManagementPermission",
407                         "monitor", NULL};
408     return p;
409   }
410   static int num_arguments();
411   virtual void execute(DCmdSource source, TRAPS);
412 };
413 
414 #if INCLUDE_CDS
415 class DumpSharedArchiveDCmd: public DCmdWithParser {
416 protected:
417   DCmdArgument<char*> _suboption;   // option of VM.cds
418   DCmdArgument<char*> _filename;    // file name, optional
419 public:
420   DumpSharedArchiveDCmd(outputStream* output, bool heap);
421   static const char* name() {
422     return "VM.cds";
423   }
424   static const char* description() {
425     return "Dump a static or dynamic shared archive including all shareable classes";
426   }
427   static const char* impact() {
428     return "Medium: Pause time depends on number of loaded classes";
429   }
430   static const JavaPermission permission() {
431     JavaPermission p = {"java.lang.management.ManagementPermission",
432                         "monitor", NULL};
433     return p;
< prev index next >