On Wed, 14 Oct 2026 13:32:13 GMT, Kevin Walls <[email protected]> wrote:
>> This implements "jcmd on core files" for Linux, and for MiniDumps on Windows >> (MacOS is "future work"). >> jcmd "revives" the VM memory and .so/.dll from the core/minidump, and runs >> the existing native diagnostic command parser and command implementations. >> >> --------- >> - [x] I confirm that I make this contribution in accordance with the >> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). > > Kevin Walls has updated the pull request with a new target base due to a > merge or a rebase. The pull request now contains 55 commits: > > - Remove static saved statistics for string and symboltable > - Update for basic jcmd test > - Merge remote-tracking branch 'upstream/master' into 8378084_jep_cores_impl > - Minor API update, change a throws and implNote. > Clarify source by calling the directory for a cache the revival cache dir > (not revival data dir), and "revival_data" is the one struct the VM and tool > share. > Use PATH_MAX > Rename waitHitRet as diagWait - diagnostic wait. It waits so the process > can be inspected at different points before a failure. > - Merge remote-tracking branch 'upstream/master' into 8378084_jep_cores_impl > - test update > - Update test, spacing. > - oops > - feedback and test update > - update > - ... and 45 more: https://git.openjdk.org/jdk/compare/059de783...12848f35 Updated to remove the static statistics in stringtable and symboltable (src/hotspot/share/classfile/stringTable.cpp and symbolTable.cpp). This was wanted to avoid problems with the static destructor on Windows, when revived. But it also makes sense, particularly following the same removal in dictionary, that in the rare case of failure to lock the table, we just fail, don't show old statistics. As well as the jcmds, this affects JFR (src/hotspot/share/jfr/periodic/jfrPeriodic.cpp): SymbolTableStatistics and StringTableStatistics now only create an event when statistics can be taken. I tested that in a build where I made every few calls to SymbolTable::get_table_statistics() fail, then ran a recording: $ jcmd Threads JFR.start settings=none name=TableStatsRecording +jdk.StringTableStatistics#enabled=true +jdk.SymbolTableStatistics#enabled=true Dumped recording: jcmd Threads JFR.dump name=1 filename=my1.jfr Viewed recording: jfr view all-events my1.jfr ...and we see fewer symboltable events compared to stringtable stats (expected, looks good to me, but maybe I can run it by @egahlin 8-) ). ------------- PR Comment: https://git.openjdk.org/jdk/pull/31011#issuecomment-6169598892
