RFR: 8332488: Add JVMTI DataDumpRequest to the debug agent.

Chris Plummer cjplummer at openjdk.org
Sat Jul 27 02:17:48 UTC 2024


JVMTI has a somewhat unique event called DataDumpRequest. One way it is triggered is via the JVMTI.data_dump jcmd, which causes JVMTI to send the DataDumpRequest event to all agents that have registered for the event callback. The agent is free to do pretty much what it wants during the callback, but the normal usage is to dump anything that might be useful for debugging the agent. In the case of the debug agent, it could dump internal data like the list of known threads and event handlers. After ranked monitor support is complete, it can also dump the state of all jvmti raw monitors that the debug agent uses.

I decided to not enable this feature by default, and not make public the option to enable it. This should only be used by developers working on the debug agent, or by users when requested to do so (by debug agent developers) to help debug a debug agent problem.

Most of the code executed during the data dump was only available for debug builds, so I've made it available for all builds. Their addition does not affect product builds except for adding a small footprint.

TBD is directing the output to a file. This is useful for some of the debugger tests that don't include the debuggee output in the log. This seems to be the case for most com/sun/jdi tests. I decided not to include it for this first pass since it is rather disruptive and detracts from the main changes being made.

testing tbd: run all tier1, tier2, and. tie5 svc tests.

-------------

Commit messages:
 - add JVMTI DATA_DUMP_REQUEST support

Changes: https://git.openjdk.org/jdk/pull/20367/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20367&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8332488
  Stats: 78 lines in 9 files changed: 39 ins; 27 del; 12 mod
  Patch: https://git.openjdk.org/jdk/pull/20367.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20367/head:pull/20367

PR: https://git.openjdk.org/jdk/pull/20367


More information about the serviceability-dev mailing list