mirror of
https://github.com/openjdk/jdk.git
synced 2025-08-27 23:04:50 +02:00
8180709: java -javaagent:agent.jar with run-time that does not contain java.instrument prints confusing error
Reviewed-by: cjplummer, sspitsyn
This commit is contained in:
parent
808189636a
commit
257f4fccd0
3 changed files with 23 additions and 5 deletions
|
@ -200,7 +200,9 @@ SystemProperty::SystemProperty(const char* key, const char* value, bool writeabl
|
|||
_writeable = writeable;
|
||||
}
|
||||
|
||||
AgentLibrary::AgentLibrary(const char* name, const char* options, bool is_absolute_path, void* os_lib) {
|
||||
AgentLibrary::AgentLibrary(const char* name, const char* options,
|
||||
bool is_absolute_path, void* os_lib,
|
||||
bool instrument_lib) {
|
||||
_name = AllocateHeap(strlen(name)+1, mtArguments);
|
||||
strcpy(_name, name);
|
||||
if (options == NULL) {
|
||||
|
@ -214,6 +216,7 @@ AgentLibrary::AgentLibrary(const char* name, const char* options, bool is_absolu
|
|||
_next = NULL;
|
||||
_state = agent_invalid;
|
||||
_is_static_lib = false;
|
||||
_is_instrument_lib = instrument_lib;
|
||||
}
|
||||
|
||||
// Check if head of 'option' matches 'name', and sets 'tail' to the remaining
|
||||
|
@ -290,6 +293,10 @@ void Arguments::add_init_agent(const char* name, char* options, bool absolute_pa
|
|||
_agentList.add(new AgentLibrary(name, options, absolute_path, NULL));
|
||||
}
|
||||
|
||||
void Arguments::add_instrument_agent(const char* name, char* options, bool absolute_path) {
|
||||
_agentList.add(new AgentLibrary(name, options, absolute_path, NULL, true));
|
||||
}
|
||||
|
||||
// Late-binding agents not started via arguments
|
||||
void Arguments::add_loaded_agent(AgentLibrary *agentLib) {
|
||||
_agentList.add(agentLib);
|
||||
|
@ -2791,7 +2798,7 @@ jint Arguments::parse_each_vm_init_arg(const JavaVMInitArgs* args, bool* patch_m
|
|||
size_t length = strlen(tail) + 1;
|
||||
char *options = NEW_C_HEAP_ARRAY(char, length, mtArguments);
|
||||
jio_snprintf(options, length, "%s", tail);
|
||||
add_init_agent("instrument", options, false);
|
||||
add_instrument_agent("instrument", options, false);
|
||||
// java agents need module java.instrument
|
||||
if (!create_numbered_property("jdk.module.addmods", "java.instrument", addmods_count++)) {
|
||||
return JNI_ENOMEM;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue