VirtualMachine.loadAgentPath/loadAgentLibrary can fail with AgentLoadException
in 2 cases:
- attach listener returns error; in the case the exception is thrown from
HotSpotVirtualMachine.processCompletionStatus (called from
HotSpotVirtualMachine.execute);
- attach listener returns success, but reply does not contain Agent_onAttach
return code ("return code: %d" message).
before jdk21 if attach listener fails to load required library, it returned
error (case 1)
from jdk21 attach listener always returns success (case 2)
Both cases are ok, but for 2nd case HotSpotVirtualMachine.loadAgentLibrary read
only single line of the response message, so exception message didn't contain
error details.
The fix updates HotSpotVirtualMachine.loadAgentLibrary to read the whole
response message.
Walking through the code, fixed some other minor things in attach listener and
attach API implementation (commented in the code)
Testing:
- test/jdk/com/sun/tools;
- tier1,tier2,tier5-svc
-------------
Commit messages:
- fix
Changes: https://git.openjdk.org/jdk/pull/17954/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=17954&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8325530
Stats: 146 lines in 6 files changed: 106 ins; 16 del; 24 mod
Patch: https://git.openjdk.org/jdk/pull/17954.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/17954/head:pull/17954
PR: https://git.openjdk.org/jdk/pull/17954