RFR: 8304846: Provide a shared utility to dump generated classes defined via Lookup API [v3]
Mandy Chung
mchung at openjdk.org
Mon Mar 27 21:12:28 UTC 2023
> This implements a shared utility to dump generated classes defined as normal/hidden classes via `Lookup` API. This replaces the implementation in `LambdaMetaFactory` and method handle implementation that dumps the hidden class bytes on disk for debugging.
>
> For classes defined via `Lookup::defineClass`, `Lookup::defineHiddenClass` and `Lookup::defineHiddenClassWithClassData`, by default they will be dumped to the path specified in `-Djava.lang.invoke.Lookup.dumpClasses=<dumpDir>`
>
> The hidden classes generated for lambdas, `LambdaForms` and method handle implementation use non-default dumper so that they can be controlled via a separate system property and path as in the current implementation.
>
> To dump lambda proxy classes, set this system property:
> -Djdk.internal.lambda.dumpProxyClasses=<dumpDir>
>
> To dump LambdaForms and method handle implementation, set this system property:
> -Djava.lang.invoke.MethodHandle.DUMP_CLASS_FILES=true
>
> P.S. `ProxyClassesDumper` is renamed to `ClassFileDumper` but for some reason, it's not shown as rename.
Mandy Chung has updated the pull request incrementally with two additional commits since the last revision:
- move ClassFileDumper to jdk.internal.util
- rename the system property for dumping class files
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/13182/files
- new: https://git.openjdk.org/jdk/pull/13182/files/04406e3b..e424810c
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=13182&range=02
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=13182&range=01-02
Stats: 160 lines in 9 files changed: 55 ins; 46 del; 59 mod
Patch: https://git.openjdk.org/jdk/pull/13182.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/13182/head:pull/13182
PR: https://git.openjdk.org/jdk/pull/13182
More information about the core-libs-dev
mailing list