###@###.### 2002-06-06
The HotSpot implementation of JVM/DI GetCapabilities() does not
zero out the unused bits. This means that newer versions of the
JPDA backend will see random results when querying capabilities
of older HotSpot VMs. The backend needs to check the JVM/DI
version number before believing newer GetCapabilities() values.
The problem is mapping capabilities to JVM/DI version numbers.
Here is the info I've been able to gather so far.
JDK1.3.1 - JVMDI_VERSION_1
baseline so, by definition, nothing new
JDK1.4.0 - jvmdi.h on 2000.11.27
JVMDI_VERSION_1_1 added
several new error codes added
can_change_schema renamed to can_unrestrictedly_redefine_classes
GetSourceDebugExtension() added
JDK1.4.0 - jvmdi.h on 2001.05.29
JVMDI_VERSION_1_2 added
two new error codes added
IsMethodObsolete() added
JDK1.4.0-update2 - jvmdi.h on 2002.05.10
JVMDI_VERSION_1_3 added
can_suspend_resume_thread_lists added
JDK1.4.0 - VirtualMachineImpl.c on 2000.11.27
can_redefine_classes added
can_add_method added
can_change_schema added
can_unrestrictedly_redefine_classes added
can_pop_frame added
canPopFrames added as false
canPopObsoleteFrames added as false
JDK1.4.0 - VirtualMachineImpl.c on 2001.03.05
can_change_schema deleted
JDWP minor version rolled to 5
JDK1.4.0 - VirtualMachineImpl.c on 2001.06.12
canPopFrames merged with can_pop_frame
canPopObsoleteFrames deleted
JDK1.4.0 - VirtualMachineImpl.c on 2001.06.20
JDWP minor version rolled back to 4
canUseInstanceFilters added
canGetSourceDebugExtension added
canRequestVMDeathEvent added
JDK1.4.0 - VirtualMachineImpl.c on 2001.07.19
canSetDefaultStratum added
JDK1.4.0 - VirtualMachineImpl.c on 2002.05.10
can_suspend_resume_thread_lists added
The HotSpot implementation of JVM/DI GetCapabilities() does not
zero out the unused bits. This means that newer versions of the
JPDA backend will see random results when querying capabilities
of older HotSpot VMs. The backend needs to check the JVM/DI
version number before believing newer GetCapabilities() values.
The problem is mapping capabilities to JVM/DI version numbers.
Here is the info I've been able to gather so far.
JDK1.3.1 - JVMDI_VERSION_1
baseline so, by definition, nothing new
JDK1.4.0 - jvmdi.h on 2000.11.27
JVMDI_VERSION_1_1 added
several new error codes added
can_change_schema renamed to can_unrestrictedly_redefine_classes
GetSourceDebugExtension() added
JDK1.4.0 - jvmdi.h on 2001.05.29
JVMDI_VERSION_1_2 added
two new error codes added
IsMethodObsolete() added
JDK1.4.0-update2 - jvmdi.h on 2002.05.10
JVMDI_VERSION_1_3 added
can_suspend_resume_thread_lists added
JDK1.4.0 - VirtualMachineImpl.c on 2000.11.27
can_redefine_classes added
can_add_method added
can_change_schema added
can_unrestrictedly_redefine_classes added
can_pop_frame added
canPopFrames added as false
canPopObsoleteFrames added as false
JDK1.4.0 - VirtualMachineImpl.c on 2001.03.05
can_change_schema deleted
JDWP minor version rolled to 5
JDK1.4.0 - VirtualMachineImpl.c on 2001.06.12
canPopFrames merged with can_pop_frame
canPopObsoleteFrames deleted
JDK1.4.0 - VirtualMachineImpl.c on 2001.06.20
JDWP minor version rolled back to 4
canUseInstanceFilters added
canGetSourceDebugExtension added
canRequestVMDeathEvent added
JDK1.4.0 - VirtualMachineImpl.c on 2001.07.19
canSetDefaultStratum added
JDK1.4.0 - VirtualMachineImpl.c on 2002.05.10
can_suspend_resume_thread_lists added
- relates to
-
JDK-4698210 GetCapabilities() interface does not zero out unused bits
-
- Resolved
-
-
JDK-4683021 RFE: backend should use SuspendThreadList()/ResumeThreadList() when ready
-
- Resolved
-