765 protected:
766 DCmdArgument<char*> _log;
767 DCmdArgument<jlong> _max;
768 public:
769 static int num_arguments() { return 2; }
770 EventLogDCmd(outputStream* output, bool heap);
771 static const char* name() {
772 return "VM.events";
773 }
774 static const char* description() {
775 return "Print VM event logs";
776 }
777 static const char* impact() {
778 return "Low: Depends on event log size. ";
779 }
780 virtual void execute(DCmdSource source, TRAPS);
781 };
782
783 class ThreadDumpToFileDCmd : public DCmdWithParser {
784 private:
785 void dumpToFile(Symbol* name, Symbol* signature, const char* path, bool overwrite, TRAPS);
786 protected:
787 DCmdArgument<bool> _overwrite;
788 DCmdArgument<char*> _format;
789 DCmdArgument<char*> _filepath;
790 public:
791 static int num_arguments() { return 3; }
792 ThreadDumpToFileDCmd(outputStream *output, bool heap);
793 static const char *name() {
794 return "Thread.dump_to_file";
795 }
796 static const char *description() {
797 return "Dump all threads, with stack traces, "
798 "to a file in plain text or JSON format.";
799 }
800 static const char* impact() {
801 return "Medium: Depends on the number of threads.";
802 }
803 virtual void execute(DCmdSource source, TRAPS);
804 };
805
806 class VThreadSchedulerDCmd : public DCmd {
807 public:
808 VThreadSchedulerDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
809 static const char* name() {
810 return "Thread.vthread_scheduler";
811 }
|
765 protected:
766 DCmdArgument<char*> _log;
767 DCmdArgument<jlong> _max;
768 public:
769 static int num_arguments() { return 2; }
770 EventLogDCmd(outputStream* output, bool heap);
771 static const char* name() {
772 return "VM.events";
773 }
774 static const char* description() {
775 return "Print VM event logs";
776 }
777 static const char* impact() {
778 return "Low: Depends on event log size. ";
779 }
780 virtual void execute(DCmdSource source, TRAPS);
781 };
782
783 class ThreadDumpToFileDCmd : public DCmdWithParser {
784 private:
785 void dumpToFile(Symbol* name, Symbol* signature, const char* path, bool overwrite, bool no_prettyprint, TRAPS);
786 protected:
787 DCmdArgument<char*> _format;
788 DCmdArgument<bool> _no_prettyprint;
789 DCmdArgument<char*> _filepath;
790 DCmdArgument<bool> _overwrite;
791 public:
792 static int num_arguments() { return 4; }
793 ThreadDumpToFileDCmd(outputStream *output, bool heap);
794 static const char *name() {
795 return "Thread.dump_to_file";
796 }
797 static const char *description() {
798 return "Dump all threads, with stack traces, "
799 "to a file in plain text or JSON format.";
800 }
801 static const char* impact() {
802 return "Medium: Depends on the number of threads.";
803 }
804 virtual void execute(DCmdSource source, TRAPS);
805 };
806
807 class VThreadSchedulerDCmd : public DCmd {
808 public:
809 VThreadSchedulerDCmd(outputStream* output, bool heap) : DCmd(output, heap) { }
810 static const char* name() {
811 return "Thread.vthread_scheduler";
812 }
|