On Wed, 29 Mar 2023 02:10:10 GMT, Mandy Chung <mch...@openjdk.org> wrote:
>> 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 one additional > commit since the last revision: > > Convert to use HexFormat src/java.base/share/classes/java/lang/invoke/InvokerBytecodeGenerator.java line 173: > 171: /** instance counters for dumped classes */ > 172: private static final HashMap<String,Integer> > DUMP_CLASS_FILES_COUNTERS = > 173: dumper().isEnabled() ? new HashMap<>(): null; Suggestion: dumper().isEnabled() ? new HashMap<>(): null; ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/13182#discussion_r1151540169