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

Chris Plummer chris.plummer at oracle.com
Tue May 19 14:25:46 UTC 2015


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 serviceability-dev mailing list