Supporting inline types in Java debugger
frederic.parain at oracle.com
Fri Oct 4 15:07:00 UTC 2019
I’ve just updated the webrev in place to fix an issue with fast JNI accessors
(hard coded constants dependent on data structures elsewhere in the VM are bad).
This issue exists on all platforms.
> On Oct 3, 2019, at 08:51, Frederic Parain <frederic.parain at oracle.com> wrote:
> Here’s a patch to enable Java debugging with inline types:
> Using jdb, it enables the following operations:
> - inspection of inline classes
> - read/write operations on local variables containing inline values
> - read/write operations on flattened fields
> - read/write operations on flattened arrays
> Those changes are relatively limited, but they impact all layers of
> the JPDA: JDI, JDWP, JVMTI and JNI. Several of these changes will require
> some spec updates. They also highlight some future issues with current
> API (like com.sun.jdi.VirtualMachine.classesByName(String className)
> which takes a class name to convert it into a L-type before sending
> the request to the debuggee).
> Debugging has been tested with jdb.
> Other Java debugger are not guaranteed to work, for instance IntelliJ Idea
> debugger still gets confused with Q-signatures.
> We can decide to either push this code if people are interested in using Java
> debuggers with inline types, or keep it has an exploration result that we can
> exploit when finalizing inline types support for the whole Java platform.
More information about the valhalla-dev