mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-28 23:34:52 +02:00
8264565: Templatize num_arguments() functions of DCmd subclasses
Reviewed-by: coleenp, dholmes
This commit is contained in:
parent
54b4070da7
commit
ff223530b6
8 changed files with 36 additions and 250 deletions
|
@ -698,17 +698,6 @@ void StringtableDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
VMThread::execute(&dumper);
|
VMThread::execute(&dumper);
|
||||||
}
|
}
|
||||||
|
|
||||||
int StringtableDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
StringtableDCmd* dcmd = new StringtableDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Sharing
|
// Sharing
|
||||||
#if INCLUDE_CDS_JAVA_HEAP
|
#if INCLUDE_CDS_JAVA_HEAP
|
||||||
oop StringTable::lookup_shared(const jchar* name, int len, unsigned int hash) {
|
oop StringTable::lookup_shared(const jchar* name, int len, unsigned int hash) {
|
||||||
|
|
|
@ -881,14 +881,3 @@ void SymboltableDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
_verbose.value());
|
_verbose.value());
|
||||||
VMThread::execute(&dumper);
|
VMThread::execute(&dumper);
|
||||||
}
|
}
|
||||||
|
|
||||||
int SymboltableDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
SymboltableDCmd* dcmd = new SymboltableDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -2526,14 +2526,3 @@ void SystemDictionaryDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
_verbose.value());
|
_verbose.value());
|
||||||
VMThread::execute(&dumper);
|
VMThread::execute(&dumper);
|
||||||
}
|
}
|
||||||
|
|
||||||
int SystemDictionaryDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
SystemDictionaryDCmd* dcmd = new SystemDictionaryDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
|
@ -219,17 +219,6 @@ void HelpDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int HelpDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
HelpDCmd* dcmd = new HelpDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void VersionDCmd::execute(DCmdSource source, TRAPS) {
|
void VersionDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
output()->print_cr("%s version %s", VM_Version::vm_name(),
|
output()->print_cr("%s version %s", VM_Version::vm_name(),
|
||||||
VM_Version::vm_release());
|
VM_Version::vm_release());
|
||||||
|
@ -258,17 +247,6 @@ void PrintVMFlagsDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int PrintVMFlagsDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
PrintVMFlagsDCmd* dcmd = new PrintVMFlagsDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
SetVMFlagDCmd::SetVMFlagDCmd(outputStream* output, bool heap) :
|
SetVMFlagDCmd::SetVMFlagDCmd(outputStream* output, bool heap) :
|
||||||
DCmdWithParser(output, heap),
|
DCmdWithParser(output, heap),
|
||||||
_flag("flag name", "The name of the flag we want to set",
|
_flag("flag name", "The name of the flag we want to set",
|
||||||
|
@ -292,17 +270,6 @@ void SetVMFlagDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int SetVMFlagDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
SetVMFlagDCmd* dcmd = new SetVMFlagDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void JVMTIDataDumpDCmd::execute(DCmdSource source, TRAPS) {
|
void JVMTIDataDumpDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
if (JvmtiExport::should_post_data_dump()) {
|
if (JvmtiExport::should_post_data_dump()) {
|
||||||
JvmtiExport::post_data_dump();
|
JvmtiExport::post_data_dump();
|
||||||
|
@ -360,16 +327,6 @@ void JVMTIAgentLoadDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int JVMTIAgentLoadDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
JVMTIAgentLoadDCmd* dcmd = new JVMTIAgentLoadDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif // INCLUDE_JVMTI
|
#endif // INCLUDE_JVMTI
|
||||||
#endif // INCLUDE_SERVICES
|
#endif // INCLUDE_SERVICES
|
||||||
|
|
||||||
|
@ -432,17 +389,6 @@ void VMUptimeDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
output()->print_cr(" s");
|
output()->print_cr(" s");
|
||||||
}
|
}
|
||||||
|
|
||||||
int VMUptimeDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
VMUptimeDCmd* dcmd = new VMUptimeDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void VMInfoDCmd::execute(DCmdSource source, TRAPS) {
|
void VMInfoDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
VMError::print_vm_info(_output);
|
VMError::print_vm_info(_output);
|
||||||
}
|
}
|
||||||
|
@ -544,17 +490,6 @@ void HeapDumpDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
dumper.dump(_filename.value(), output(), (int) level);
|
dumper.dump(_filename.value(), output(), (int) level);
|
||||||
}
|
}
|
||||||
|
|
||||||
int HeapDumpDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
HeapDumpDCmd* dcmd = new HeapDumpDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ClassHistogramDCmd::ClassHistogramDCmd(outputStream* output, bool heap) :
|
ClassHistogramDCmd::ClassHistogramDCmd(outputStream* output, bool heap) :
|
||||||
DCmdWithParser(output, heap),
|
DCmdWithParser(output, heap),
|
||||||
_all("-all", "Inspect all objects, including unreachable objects",
|
_all("-all", "Inspect all objects, including unreachable objects",
|
||||||
|
@ -568,17 +503,6 @@ void ClassHistogramDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
VMThread::execute(&heapop);
|
VMThread::execute(&heapop);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ClassHistogramDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
ClassHistogramDCmd* dcmd = new ClassHistogramDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // INCLUDE_SERVICES
|
#endif // INCLUDE_SERVICES
|
||||||
|
|
||||||
ThreadDumpDCmd::ThreadDumpDCmd(outputStream* output, bool heap) :
|
ThreadDumpDCmd::ThreadDumpDCmd(outputStream* output, bool heap) :
|
||||||
|
@ -603,17 +527,6 @@ void ThreadDumpDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
VMThread::execute(&op3);
|
VMThread::execute(&op3);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ThreadDumpDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
ThreadDumpDCmd* dcmd = new ThreadDumpDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Enhanced JMX Agent support
|
// Enhanced JMX Agent support
|
||||||
|
|
||||||
JMXStartRemoteDCmd::JMXStartRemoteDCmd(outputStream *output, bool heap_allocated) :
|
JMXStartRemoteDCmd::JMXStartRemoteDCmd(outputStream *output, bool heap_allocated) :
|
||||||
|
@ -729,19 +642,6 @@ JMXStartRemoteDCmd::JMXStartRemoteDCmd(outputStream *output, bool heap_allocated
|
||||||
_dcmdparser.add_dcmd_option(&_jdp_name);
|
_dcmdparser.add_dcmd_option(&_jdp_name);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
int JMXStartRemoteDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
JMXStartRemoteDCmd* dcmd = new JMXStartRemoteDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void JMXStartRemoteDCmd::execute(DCmdSource source, TRAPS) {
|
void JMXStartRemoteDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
ResourceMark rm(THREAD);
|
ResourceMark rm(THREAD);
|
||||||
HandleMark hm(THREAD);
|
HandleMark hm(THREAD);
|
||||||
|
@ -929,17 +829,6 @@ void CodeHeapAnalyticsDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
|
|
||||||
CompileBroker::print_heapinfo(output(), _function.value(), granularity);
|
CompileBroker::print_heapinfo(output(), _function.value(), granularity);
|
||||||
}
|
}
|
||||||
|
|
||||||
int CodeHeapAnalyticsDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
CodeHeapAnalyticsDCmd* dcmd = new CodeHeapAnalyticsDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
//---< END >--- CodeHeap State Analytics.
|
//---< END >--- CodeHeap State Analytics.
|
||||||
|
|
||||||
EventLogDCmd::EventLogDCmd(outputStream* output, bool heap) :
|
EventLogDCmd::EventLogDCmd(outputStream* output, bool heap) :
|
||||||
|
@ -970,17 +859,6 @@ void EventLogDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int EventLogDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
EventLogDCmd* dcmd = new EventLogDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CompilerDirectivesPrintDCmd::execute(DCmdSource source, TRAPS) {
|
void CompilerDirectivesPrintDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
DirectivesStack::print(output());
|
DirectivesStack::print(output());
|
||||||
}
|
}
|
||||||
|
@ -995,17 +873,6 @@ void CompilerDirectivesAddDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
DirectivesParser::parse_from_file(_filename.value(), output());
|
DirectivesParser::parse_from_file(_filename.value(), output());
|
||||||
}
|
}
|
||||||
|
|
||||||
int CompilerDirectivesAddDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
CompilerDirectivesAddDCmd* dcmd = new CompilerDirectivesAddDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void CompilerDirectivesRemoveDCmd::execute(DCmdSource source, TRAPS) {
|
void CompilerDirectivesRemoveDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
DirectivesStack::pop(1);
|
DirectivesStack::pop(1);
|
||||||
}
|
}
|
||||||
|
@ -1032,18 +899,6 @@ void ClassHierarchyDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
_print_subclasses.value(), _classname.value());
|
_print_subclasses.value(), _classname.value());
|
||||||
VMThread::execute(&printClassHierarchyOp);
|
VMThread::execute(&printClassHierarchyOp);
|
||||||
}
|
}
|
||||||
|
|
||||||
int ClassHierarchyDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
ClassHierarchyDCmd* dcmd = new ClassHierarchyDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
class VM_DumpTouchedMethods : public VM_Operation {
|
class VM_DumpTouchedMethods : public VM_Operation {
|
||||||
|
@ -1061,10 +916,6 @@ public:
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
TouchedMethodsDCmd::TouchedMethodsDCmd(outputStream* output, bool heap) :
|
|
||||||
DCmdWithParser(output, heap)
|
|
||||||
{}
|
|
||||||
|
|
||||||
void TouchedMethodsDCmd::execute(DCmdSource source, TRAPS) {
|
void TouchedMethodsDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
if (!LogTouchedMethods) {
|
if (!LogTouchedMethods) {
|
||||||
output()->print_cr("VM.print_touched_methods command requires -XX:+LogTouchedMethods");
|
output()->print_cr("VM.print_touched_methods command requires -XX:+LogTouchedMethods");
|
||||||
|
@ -1073,19 +924,11 @@ void TouchedMethodsDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
VM_DumpTouchedMethods dumper(output());
|
VM_DumpTouchedMethods dumper(output());
|
||||||
VMThread::execute(&dumper);
|
VMThread::execute(&dumper);
|
||||||
}
|
}
|
||||||
|
|
||||||
int TouchedMethodsDCmd::num_arguments() {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
#if INCLUDE_JVMTI
|
#if INCLUDE_JVMTI
|
||||||
extern "C" typedef char const* (JNICALL *debugInit_startDebuggingViaCommandPtr)(JNIEnv* env, jthread thread, char const** transport_name,
|
extern "C" typedef char const* (JNICALL *debugInit_startDebuggingViaCommandPtr)(JNIEnv* env, jthread thread, char const** transport_name,
|
||||||
char const** address, jboolean* first_start);
|
char const** address, jboolean* first_start);
|
||||||
static debugInit_startDebuggingViaCommandPtr dvc_start_ptr = NULL;
|
static debugInit_startDebuggingViaCommandPtr dvc_start_ptr = NULL;
|
||||||
|
|
||||||
DebugOnCmdStartDCmd::DebugOnCmdStartDCmd(outputStream* output, bool heap) : DCmdWithParser(output, heap) {
|
|
||||||
}
|
|
||||||
|
|
||||||
void DebugOnCmdStartDCmd::execute(DCmdSource source, TRAPS) {
|
void DebugOnCmdStartDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
char const* transport = NULL;
|
char const* transport = NULL;
|
||||||
char const* addr = NULL;
|
char const* addr = NULL;
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, 2020, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -52,7 +52,6 @@ public:
|
||||||
"'help all' will show help for all commands.";
|
"'help all' will show help for all commands.";
|
||||||
}
|
}
|
||||||
static const char* impact() { return "Low"; }
|
static const char* impact() { return "Low"; }
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -69,7 +68,6 @@ public:
|
||||||
"java.vm.version", "read"};
|
"java.vm.version", "read"};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -86,7 +84,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS) {
|
virtual void execute(DCmdSource source, TRAPS) {
|
||||||
Arguments::print_on(_output);
|
Arguments::print_on(_output);
|
||||||
}
|
}
|
||||||
|
@ -108,7 +105,6 @@ public:
|
||||||
"*", "read"};
|
"*", "read"};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -130,7 +126,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -153,7 +148,6 @@ public:
|
||||||
"control", NULL};
|
"control", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -172,7 +166,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -194,7 +187,6 @@ public:
|
||||||
"control", NULL};
|
"control", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
#endif // INCLUDE_JVMTI
|
#endif // INCLUDE_JVMTI
|
||||||
|
@ -217,9 +209,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() {
|
|
||||||
return 0;
|
|
||||||
};
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -235,7 +224,6 @@ public:
|
||||||
static const char* impact() {
|
static const char* impact() {
|
||||||
return "Low";
|
return "Low";
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -252,7 +240,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -266,7 +253,6 @@ public:
|
||||||
static const char* impact() {
|
static const char* impact() {
|
||||||
return "Medium: Depends on Java heap size and content.";
|
return "Medium: Depends on Java heap size and content.";
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -280,7 +266,6 @@ public:
|
||||||
static const char* impact() {
|
static const char* impact() {
|
||||||
return "Medium: Depends on Java content.";
|
return "Medium: Depends on Java content.";
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -294,7 +279,6 @@ public:
|
||||||
static const char* impact() {
|
static const char* impact() {
|
||||||
return "Medium";
|
return "Medium";
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
static const JavaPermission permission() {
|
static const JavaPermission permission() {
|
||||||
JavaPermission p = {"java.lang.management.ManagementPermission",
|
JavaPermission p = {"java.lang.management.ManagementPermission",
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
|
@ -314,7 +298,6 @@ public:
|
||||||
static const char* impact() {
|
static const char* impact() {
|
||||||
return "Medium";
|
return "Medium";
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
static const JavaPermission permission() {
|
static const JavaPermission permission() {
|
||||||
JavaPermission p = {"java.lang.management.ManagementPermission",
|
JavaPermission p = {"java.lang.management.ManagementPermission",
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
|
@ -348,7 +331,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
#endif // INCLUDE_SERVICES
|
#endif // INCLUDE_SERVICES
|
||||||
|
@ -373,7 +355,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -400,13 +381,12 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
class TouchedMethodsDCmd : public DCmdWithParser {
|
class TouchedMethodsDCmd : public DCmd {
|
||||||
public:
|
public:
|
||||||
TouchedMethodsDCmd(outputStream* output, bool heap);
|
TouchedMethodsDCmd(outputStream* output, bool heap) : DCmd(output, heap) {}
|
||||||
static const char* name() {
|
static const char* name() {
|
||||||
return "VM.print_touched_methods";
|
return "VM.print_touched_methods";
|
||||||
}
|
}
|
||||||
|
@ -416,7 +396,6 @@ public:
|
||||||
static const char* impact() {
|
static const char* impact() {
|
||||||
return "Medium: Depends on Java content.";
|
return "Medium: Depends on Java content.";
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -439,7 +418,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -488,10 +466,7 @@ public:
|
||||||
return "Start remote management agent.";
|
return "Start remote management agent.";
|
||||||
}
|
}
|
||||||
|
|
||||||
static int num_arguments();
|
|
||||||
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
class JMXStartLocalDCmd : public DCmd {
|
class JMXStartLocalDCmd : public DCmd {
|
||||||
|
@ -573,7 +548,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -595,7 +569,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
#endif // LINUX
|
#endif // LINUX
|
||||||
|
@ -617,7 +590,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -638,7 +610,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -664,7 +635,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
//---< END >--- CodeHeap State Analytics.
|
//---< END >--- CodeHeap State Analytics.
|
||||||
|
@ -686,7 +656,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -707,7 +676,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -730,7 +698,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -751,7 +718,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -817,7 +783,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -840,7 +805,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -863,14 +827,13 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
#if INCLUDE_JVMTI
|
#if INCLUDE_JVMTI
|
||||||
class DebugOnCmdStartDCmd : public DCmdWithParser {
|
class DebugOnCmdStartDCmd : public DCmd {
|
||||||
public:
|
public:
|
||||||
DebugOnCmdStartDCmd(outputStream* output, bool heap);
|
DebugOnCmdStartDCmd(outputStream* output, bool heap) : DCmd(output, heap) {}
|
||||||
static const char* name() {
|
static const char* name() {
|
||||||
return "VM.start_java_debugging";
|
return "VM.start_java_debugging";
|
||||||
}
|
}
|
||||||
|
@ -884,7 +847,6 @@ public:
|
||||||
JavaPermission p = { "java.lang.management.ManagementPermission", "control", NULL };
|
JavaPermission p = { "java.lang.management.ManagementPermission", "control", NULL };
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments() { return 0; }
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
#endif // INCLUDE_JVMTI
|
#endif // INCLUDE_JVMTI
|
||||||
|
@ -909,7 +871,6 @@ public:
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2011, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2011, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -27,10 +27,12 @@
|
||||||
|
|
||||||
#include "classfile/vmSymbols.hpp"
|
#include "classfile/vmSymbols.hpp"
|
||||||
#include "memory/allocation.hpp"
|
#include "memory/allocation.hpp"
|
||||||
|
#include "memory/resourceArea.hpp"
|
||||||
#include "runtime/arguments.hpp"
|
#include "runtime/arguments.hpp"
|
||||||
#include "runtime/os.hpp"
|
#include "runtime/os.hpp"
|
||||||
#include "runtime/vmThread.hpp"
|
#include "runtime/vmThread.hpp"
|
||||||
#include "utilities/ostream.hpp"
|
#include "utilities/ostream.hpp"
|
||||||
|
#include <type_traits>
|
||||||
|
|
||||||
|
|
||||||
enum DCmdSource {
|
enum DCmdSource {
|
||||||
|
@ -274,6 +276,10 @@ public:
|
||||||
JavaPermission p = {NULL, NULL, NULL};
|
JavaPermission p = {NULL, NULL, NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
// num_arguments() is used by the DCmdFactoryImpl::get_num_arguments() template functions.
|
||||||
|
// - For subclasses of DCmdWithParser, it's calculated by DCmdParser::num_arguments().
|
||||||
|
// - Other subclasses of DCmd have zero arguments by default. You can change this
|
||||||
|
// by defining your own version of MyDCmd::num_arguments().
|
||||||
static int num_arguments() { return 0; }
|
static int num_arguments() { return 0; }
|
||||||
outputStream* output() const { return _output; }
|
outputStream* output() const { return _output; }
|
||||||
bool is_heap_allocated() const { return _is_heap_allocated; }
|
bool is_heap_allocated() const { return _is_heap_allocated; }
|
||||||
|
@ -321,6 +327,9 @@ public:
|
||||||
virtual void print_help(const char* name) const;
|
virtual void print_help(const char* name) const;
|
||||||
virtual GrowableArray<const char*>* argument_name_array() const;
|
virtual GrowableArray<const char*>* argument_name_array() const;
|
||||||
virtual GrowableArray<DCmdArgumentInfo*>* argument_info_array() const;
|
virtual GrowableArray<DCmdArgumentInfo*>* argument_info_array() const;
|
||||||
|
DCmdParser* dcmdparser() {
|
||||||
|
return &_dcmdparser;
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
class DCmdMark : public StackObj {
|
class DCmdMark : public StackObj {
|
||||||
|
@ -404,7 +413,7 @@ private:
|
||||||
template <class DCmdClass> class DCmdFactoryImpl : public DCmdFactory {
|
template <class DCmdClass> class DCmdFactoryImpl : public DCmdFactory {
|
||||||
public:
|
public:
|
||||||
DCmdFactoryImpl(uint32_t flags, bool enabled, bool hidden) :
|
DCmdFactoryImpl(uint32_t flags, bool enabled, bool hidden) :
|
||||||
DCmdFactory(DCmdClass::num_arguments(), flags, enabled, hidden) { }
|
DCmdFactory(get_num_arguments<DCmdClass>(), flags, enabled, hidden) { }
|
||||||
// Returns a resourceArea allocated instance
|
// Returns a resourceArea allocated instance
|
||||||
DCmd* create_resource_instance(outputStream* output) const {
|
DCmd* create_resource_instance(outputStream* output) const {
|
||||||
return new DCmdClass(output, false);
|
return new DCmdClass(output, false);
|
||||||
|
@ -424,6 +433,24 @@ public:
|
||||||
const char* disabled_message() const {
|
const char* disabled_message() const {
|
||||||
return DCmdClass::disabled_message();
|
return DCmdClass::disabled_message();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private:
|
||||||
|
template <typename T, ENABLE_IF(!std::is_base_of<DCmdWithParser, T>::value)>
|
||||||
|
static int get_num_arguments() {
|
||||||
|
return T::num_arguments();
|
||||||
|
}
|
||||||
|
|
||||||
|
template <typename T, ENABLE_IF(std::is_base_of<DCmdWithParser, T>::value)>
|
||||||
|
static int get_num_arguments() {
|
||||||
|
ResourceMark rm;
|
||||||
|
DCmdClass* dcmd = new DCmdClass(NULL, false);
|
||||||
|
if (dcmd != NULL) {
|
||||||
|
DCmdMark mark(dcmd);
|
||||||
|
return dcmd->dcmdparser()->num_arguments();
|
||||||
|
} else {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
// This class provides a convenient way to register Dcmds, without a need to change
|
// This class provides a convenient way to register Dcmds, without a need to change
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2012, 2020, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -160,17 +160,6 @@ void NMTDCmd::execute(DCmdSource source, TRAPS) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
int NMTDCmd::num_arguments() {
|
|
||||||
ResourceMark rm;
|
|
||||||
NMTDCmd* dcmd = new NMTDCmd(NULL, false);
|
|
||||||
if (dcmd != NULL) {
|
|
||||||
DCmdMark mark(dcmd);
|
|
||||||
return dcmd->_dcmdparser.num_arguments();
|
|
||||||
} else {
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
void NMTDCmd::report(bool summaryOnly, size_t scale_unit) {
|
void NMTDCmd::report(bool summaryOnly, size_t scale_unit) {
|
||||||
MemBaseline baseline;
|
MemBaseline baseline;
|
||||||
if (baseline.baseline(summaryOnly)) {
|
if (baseline.baseline(summaryOnly)) {
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
/*
|
/*
|
||||||
* Copyright (c) 2012, 2019, Oracle and/or its affiliates. All rights reserved.
|
* Copyright (c) 2012, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||||
*
|
*
|
||||||
* This code is free software; you can redistribute it and/or modify it
|
* This code is free software; you can redistribute it and/or modify it
|
||||||
|
@ -60,7 +60,6 @@ class NMTDCmd: public DCmdWithParser {
|
||||||
"monitor", NULL};
|
"monitor", NULL};
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
static int num_arguments();
|
|
||||||
virtual void execute(DCmdSource source, TRAPS);
|
virtual void execute(DCmdSource source, TRAPS);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue