RFR: 8287812: Cleanup JDWP agent GetEnv initialization
Alex Menkov
amenkov at openjdk.org
Thu Dec 8 23:53:55 UTC 2022
On Thu, 8 Dec 2022 22:40:57 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:
> 3 things to cleanup in this area:
>
> (1) The JDWP agent uses `JNI GetEnv(JVMTI_VERSION_1)` to get a JVMTI environment. If `GetEnv` fails the JDWP agent prints this:
>
> `ERROR: JDWP unable to access JVMTI Version 1 (0x30010000), is your J2SE a 1.5 or newer version? JNIEnv's GetEnv() returned -3`
>
> The text "is your J2SE a 1.5 or newer version?" dates from JDK 5 when JVMTI was introduced and doesn't make sense now.
>
> (2) `JVMTI_VERSION_1` suggests that the JDWP agent is looking for a JVMTI v1 environment when it really wants the latest. `GetEnv` should request `JVMTI_VERSION` so that it always requests the current version.
>
> (3) There is some outdated compatibility checking between runtime and compile time versions of JVMTI that date back to the 1.0, 1.1, and 1.2 era, and are no longer needed.
src/jdk.jdwp.agent/share/native/libjdwp/debugInit.c line 180:
> 178: */
> 179: int i;
> 180: for (i = 0; i < nof_compatible_versions; ++i) {
nof_compatible_versions and compatible_versions_list variables are not used now and can be deleted
-------------
PR: https://git.openjdk.org/jdk/pull/11602
More information about the serviceability-dev
mailing list