RFR: 8332488: Add JVMTI DataDumpRequest to the debug agent. [v2]

Leonid Mesnik lmesnik at openjdk.org
Thu Aug 8 20:24:33 UTC 2024


On Thu, 8 Aug 2024 19:28:09 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

>> 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.
>
> Chris Plummer has updated the pull request incrementally with two additional commits since the last revision:
> 
>  - Minor improvment to datadump output
>  - Add test cast for new debug agent datadump support

test/jdk/com/sun/jdi/DataDumpTest.java line 51:

> 49:  * @library /test/lib
> 50:  * @modules jdk.jdi
> 51:  * @build DataDumpTest

Is the build needed to build 'DataDumpTestTarg' because it is not explicitly used by the test?

test/jdk/com/sun/jdi/DataDumpTest.java line 52:

> 50:  * @modules jdk.jdi
> 51:  * @build DataDumpTest
> 52:  * @run main/othervm/timeout=15 DataDumpTest

Is the othervm is really needed in this test? 
Also, it is unclear why the timeout=15 and not usual 120?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/20367#discussion_r1710199916
PR Review Comment: https://git.openjdk.org/jdk/pull/20367#discussion_r1710203086


More information about the serviceability-dev mailing list