Round #1: RFR: 8049365 - Update JDI and JDWP for modules

serguei.spitsyn at oracle.com serguei.spitsyn at oracle.com
Wed Dec 30 11:37:22 UTC 2015


On 12/29/15 23:52, Alan Bateman wrote:
>
> On 28/12/2015 20:13, serguei.spitsyn at oracle.com wrote:
>>
>> It would be nice to get rid of this JVM TI capability.
>> But my question is if new JVMTI functionality is mandatory for all 
>> VM's out there.
> I think we need to look at aligning the next version of JVM TI with 
> Java SE 9 and if this makes sense then it would mean the capability 
> isn't needed.

Ok, got it.
Thanks.

> It also means that residual references to JDK 1.1 in the spec can be 
> dropped, I think these date back to JVMDI or JVMPI.

Do you mean to make a clean up and get rid of all occurrences of 
since="1.1"?

cat -n src/share/vm/prims/jvmti.xml | g since | g '1\.1'
   1468      <function id="GetCurrentThread" phase="start" num="18" 
since="1.1">
   1928      <function id="GetOwnedMonitorStackDepthInfo" num="153" 
since="1.1">
   2971      <function id="ForceEarlyReturnObject" num="81" since="1.1">
   3021      <function id="ForceEarlyReturnInt" num="82" since="1.1">
   3069      <function id="ForceEarlyReturnLong" num="83" since="1.1">
   3112      <function id="ForceEarlyReturnFloat" num="84" since="1.1">
   3155      <function id="ForceEarlyReturnDouble" num="85" since="1.1">
   3196      <function id="ForceEarlyReturnVoid" num="86" since="1.1">
   3306                     since="1.1">
   3330                     since="1.1">
   3398                     since="1.1">
   3428                 since="1.1">
   3624                 since="1.1">
   3639                 since="1.1">
   3655                 since="1.1">
   3700                 since="1.1">
   3733                 since="1.1">
   3789                 since="1.1">
   3840                 since="1.1">
   4001      <callback id="jvmtiHeapIterationCallback" since="1.1">
   4056      <callback id="jvmtiHeapReferenceCallback" since="1.1">
   4160      <callback id="jvmtiPrimitiveFieldCallback" since="1.1">
   4234      <callback id="jvmtiArrayPrimitiveValueCallback" since="1.1">
   4300      <callback id="jvmtiStringPrimitiveValueCallback" since="1.1">
   4363      <callback id="jvmtiReservedCallback" since="1.1">
   4373      <function id="FollowReferences" num="115" since="1.1">
   4608      <function id="IterateThroughHeap" num="116" since="1.1">
   6888      <function id="GetClassVersionNumbers" phase="start" 
num="145" since="1.1">
   6932      <function id="GetConstantPool" phase="start" num="146" 
since="1.1">
   7071      <function id="IsModifiableClass" jkernel="yes" 
phase="start" num="45" since="1.1">
   7196      <function id="RetransformClasses" jkernel="yes" num="152" 
since="1.1">
   8434      <function id="SetNativeMethodPrefix" jkernel="yes" 
phase="any" num="73" since="1.1">
   8557      <function id="SetNativeMethodPrefixes" jkernel="yes" 
phase="any" num="74" since="1.1">
   9917        <capabilityfield id="can_force_early_return" since="1.1">
   9923        <capabilityfield 
id="can_get_owned_monitor_stack_depth_info" since="1.1">
   9929        <capabilityfield id="can_get_constant_pool" since="1.1">
   9935        <capabilityfield id="can_set_native_method_prefix" 
since="1.1">
   9942        <capabilityfield id="can_retransform_classes" since="1.1">
   9959        <capabilityfield id="can_retransform_any_class" since="1.1">
   9966        <capabilityfield 
id="can_generate_resource_exhaustion_heap_events" since="1.1">
   9973        <capabilityfield 
id="can_generate_resource_exhaustion_threads_events" since="1.1">
  10589      <function id="AddToSystemClassLoaderSearch" jkernel="yes" 
phase="onload" num="151" since="1.1">
  12951           since="1.1">
  12961                   since="1.1">


Just want to make sure I understand this correctly...


>
>>>
>>> The JDWP agent uses JNI to upcall to Module::getClassLoader and 
>>> Module::canRead, we might consider adding JNI or JVM TI functions in 
>>> the future and avoid this.
>>
>> I was thinking about the same.
>> My preference would be to add new JVM TI functions.
> We can add these later, it's not critical to get these JDWP commands 
> working (as you've demonstrated).

Ok.
I put it in my todo list.


Thanks,
Serguei


>
> -Alan.



More information about the jigsaw-dev mailing list