157 158 class JVMTIDataDumpDCmd : public DCmd { 159 public: 160 JVMTIDataDumpDCmd(outputStream* output, bool heap) : DCmd(output, heap) { } 161 static const char* name() { return "JVMTI.data_dump"; } 162 static const char* description() { 163 return "Signal the JVM to do a data-dump request for JVMTI."; 164 } 165 static const char* impact() { 166 return "High"; 167 } 168 static const JavaPermission permission() { 169 JavaPermission p = {"java.lang.management.ManagementPermission", 170 "monitor", NULL}; 171 return p; 172 } 173 static int num_arguments() { return 0; } 174 virtual void execute(DCmdSource source, TRAPS); 175 }; 176 177 class VMDynamicLibrariesDCmd : public DCmd { 178 public: 179 VMDynamicLibrariesDCmd(outputStream* output, bool heap); 180 static const char* name() { 181 return "VM.dynlibs"; 182 } 183 static const char* description() { 184 return "Print loaded dynamic libraries."; 185 } 186 static const char* impact() { 187 return "Low"; 188 } 189 static const JavaPermission permission() { 190 JavaPermission p = {"java.lang.management.ManagementPermission", 191 "monitor", NULL}; 192 return p; 193 } 194 static int num_arguments() { 195 return 0; 196 }; | 157 158 class JVMTIDataDumpDCmd : public DCmd { 159 public: 160 JVMTIDataDumpDCmd(outputStream* output, bool heap) : DCmd(output, heap) { } 161 static const char* name() { return "JVMTI.data_dump"; } 162 static const char* description() { 163 return "Signal the JVM to do a data-dump request for JVMTI."; 164 } 165 static const char* impact() { 166 return "High"; 167 } 168 static const JavaPermission permission() { 169 JavaPermission p = {"java.lang.management.ManagementPermission", 170 "monitor", NULL}; 171 return p; 172 } 173 static int num_arguments() { return 0; } 174 virtual void execute(DCmdSource source, TRAPS); 175 }; 176 177 class JVMTIAgentLoadDCmd : public DCmdWithParser { 178 protected: 179 DCmdArgument<char*> _libpath; 180 DCmdArgument<char*> _option; 181 public: 182 JVMTIAgentLoadDCmd(outputStream* output, bool heap); 183 static const char* name() { return "JVMTI.agent_load"; } 184 static const char* description() { 185 return "Load JVMTI native agent."; 186 } 187 static const char* impact() { return "Low"; } 188 static int num_arguments(); 189 virtual void execute(DCmdSource source, TRAPS); 190 }; 191 192 class JVMTIJavaAgentLoadDCmd : public DCmdWithParser { 193 protected: 194 DCmdArgument<char*> _libpath; 195 DCmdArgument<char*> _option; 196 public: 197 JVMTIJavaAgentLoadDCmd(outputStream* output, bool heap); 198 static const char* name() { return "JVMTI.javaagent_load"; } 199 static const char* description() { 200 return "Load JVMTI java agent."; 201 } 202 static const char* impact() { return "Low"; } 203 static int num_arguments(); 204 virtual void execute(DCmdSource source, TRAPS); 205 }; 206 207 class VMDynamicLibrariesDCmd : public DCmd { 208 public: 209 VMDynamicLibrariesDCmd(outputStream* output, bool heap); 210 static const char* name() { 211 return "VM.dynlibs"; 212 } 213 static const char* description() { 214 return "Print loaded dynamic libraries."; 215 } 216 static const char* impact() { 217 return "Low"; 218 } 219 static const JavaPermission permission() { 220 JavaPermission p = {"java.lang.management.ManagementPermission", 221 "monitor", NULL}; 222 return p; 223 } 224 static int num_arguments() { 225 return 0; 226 }; |