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

Reply via email to