[9] RFR (M) 8054386: Allow Java debugging when CDS is enabled

Mikhailo Seledtsov mikhailo.seledtsov at oracle.com
Tue May 19 21:41:35 UTC 2015


Hi Chris,

  The changes look good to me.

Minor nit:
   Some places in test code are using wrong format convention: 
jar_classes, jar_classlist_file, output_run
   Please use the following convention instead: jarClasses, 
jarClasslistFile, outputRun
   Minor, no re-posts needed.

Thank you,
Misha

On 5/19/2015 11:44 AM, Chris Plummer wrote:
> Ok, I can do that, but keep in mind that the two JvmtiExport calls I'm 
> making are not really new, but moved from one location to another.
>
> thanks,
>
> Chris
>
> On 5/19/15 9:05 AM, Ioi Lam wrote:
>> Hi Chris,
>>
>> Looks good to me. Just a minor nit: in filemap.cpp, you should add
>>
>>      #include "prims/jvmtiExport.hpp"
>>
>> or the build may break if precompiled headers are disabled.
>>
>> Thanks
>> - Ioi
>>
>>
>> On 5/19/15 7:25 AM, Chris Plummer wrote:
>>> Hi,
>>>
>>> Please review the following changes for allowing java debugging when 
>>> CDS is enabled.
>>>
>>> Webrev:http://cr.openjdk.java.net/~cjplummer/8054386/webrev.01/
>>> Bug:https://bugs.openjdk.java.net/browse/JDK-8054386
>>>
>>> The VM changes are simple. I removed the check that prevents 
>>> debugging with CDS enabled, and added logic that will map the CDS 
>>> archive RW when debugging is enabled.
>>>
>>> The tests are a bit more complex. There are a bunch of existing JDI 
>>> tests for testing debugging support. Rather than start from scratch 
>>> or clone them, I instead just wrote wrapper tests that put the 
>>> relevant JDI test classes in the archive, and then invoke the JDI 
>>> test. I did this for 3 of the JDI tests. If you feel there are 
>>> others that would be good candidates, I'd be happy to add them. I'm 
>>> looking for ones that would result in modification of the RO class 
>>> metadata, such as setting a breakpoint (for which I already added 
>>> two tests).
>>>
>>> Testing done:
>>> -Using JPRT to run the new jtreg tests on all platforms.
>>> -Using JPRT to run all jtreg runtime tests on linux x86 and x_64.
>>> -Regular JPRT "-testset hotspot" run
>>> -Putting the JCK JVMTI tests in the archive and then running them.
>>> -Putting the nsk jdb, jdwp, jvmti, and jdi tests in the archive and 
>>> then running them.
>>> -Putting a simple test class in the archive and then setting a 
>>> breakpoint on it using jdb
>>>
>>> Some of the above testing resulted in the discovery of bugs that 
>>> still need to be addressed: JDK-8078644, JDK-8078730, and JDK-8079181.
>>>
>>> I also verified that without the change to map the archive RW, the 
>>> above testing resulted in a SEGV, which is what you would expect 
>>> (and actually want to see to prove that the testing is effective).
>>>
>>> thanks,
>>>
>>> Chris
>>>
>>
>



More information about the hotspot-runtime-dev mailing list