Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8203329

JDWP/JDI VM information string is incorrect

    XMLWordPrintable

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: P4
    • Resolution: Fixed
    • Affects Version/s: 11
    • Fix Version/s: 11
    • Component/s: core-svc
    • Labels:
      None
    • Subcomponent:
    • Resolved In Build:
      b18

      Backports

        Description

        In writing a new JDI test I noticed in the output:

        JVM version:11-internal
        JDI version: 9.0
        JVM description: Java Debug Interface (Reference Implementation) version 9.0
        Java Debug Wire Protocol (Reference Implementation) version 9.0
        JVM Debug Interface version 11.0
        JVM version 11-internal (Java HotSpot(TM) 64-Bit Server VM, mixed mode, aot, sharing)

        This last line claims that AOT and CDS are being used!

        I augmented the JDI code to show the actual command-line and to add -showversion. Here's the command line:

        LAUNCHING VM: /export/users/dh198349/valhalla/repos/valhalla-dev/build/linux-x64-debug/images/jdk/bin/java -classpath /export/users/dh198349/valhalla/repos/valhalla-dev/open/test/jdk/JTwork/classes/com/sun/jdi/RedefineNestmateAttr/TestNestmateAttr.d -Xdebug -showversion -Xrunjdwp:transport=dt_socket,address=bussund0416:48834,suspend=y Target

        and here's the result of -showversion

        java version "11-internal" 2018-09-25
        Java(TM) SE Runtime Environment 18.9 (fastdebug build 11-internal+0-2018-05-08-0508063.daholme.valhalla-dev)
        Java HotSpot(TM) 64-Bit Server VM 18.9 (fastdebug build 11-internal+0-2018-05-08-0508063.daholme.valhalla-dev, mixed mode)

        No AOT or CDS shown.

        AFAICS there is only one place where this version string information can come from:

        Abstract_VM_Version::vm_info_string():

            case Arguments::_mixed:
              if (UseSharedSpaces) {
                if (UseAOT) {
                  return "mixed mode, aot, sharing";
        #ifdef TIERED
                } else if(is_client_compilation_mode_vm()) {
                  return "mixed mode, emulated-client, sharing";
        #endif
                } else {
                  return "mixed mode, sharing";
                 }
              } else {
                if (UseAOT) {
                  return "mixed mode, aot";
        #ifdef TIERED
                } else if(is_client_compilation_mode_vm()) {
                  return "mixed mode, emulated-client";
        #endif
                } else {
                  return "mixed mode";
                }
              }

        but that requires UseAOT and UseSharedSpeces to be true.

        Something unexpected is happening here.

          Attachments

            Issue Links

              Activity

                People

                Assignee:
                cjplummer Chris Plummer
                Reporter:
                dholmes David Holmes
                Votes:
                0 Vote for this issue
                Watchers:
                3 Start watching this issue

                  Dates

                  Created:
                  Updated:
                  Resolved: