RFR: 8346143: add ClearAllFramePops function to speedup debugger single stepping in some cases [v8]

Serguei Spitsyn sspitsyn at openjdk.org
Tue Jan 7 19:39:16 UTC 2025


> New JVMTI function `ClearAllFramePops` will help to speedup debugger single stepping in some cases.
> Additionally, the JVMTI `NotifyFramePop` implementation was fixed to return `JVMTI_ERROR_DUPLICATE` to make it consistent with the `SetBreakpoint` which also returns this error.
> 
> The JDWP agent fix will be needed to make use of this new JVMTI function. The corresponding debugger bug is:
> [8229012](https://bugs.openjdk.org/browse/JDK-8229012): When single stepping, the debug agent can cause the thread to remain in interpreter mode after single stepping completes
> 
> CSR: [8346144](https://bugs.openjdk.org/browse/JDK-8346144): add ClearAllFramePops function to speedup debugger single stepping in some cases
> 
> Testing:
>  - mach5 tiers 1-6 were run to make sure this fix caused no regressions
>  - Chris tested the JVMTI patch with his JDWP fix of [8229012](https://bugs.openjdk.org/browse/JDK-8229012).

Serguei Spitsyn has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains nine additional commits since the last revision:

 - Merge
 - review: updated one copyright year
 - review: addressed comments for new test, jvmti.xml, jvmtiEnvThreadState.cpp
 - review: removed unneeded check for JvmtiExport::can_post_frame_pop()
 - review: add a unit test covering JVMTI ClearAllFramePops
 - review: removed DUPLICATE related changes; a minor tweak for ASSERT line
 - added extra check to post_method_exit_inner before clear_frame_pop to avoid assert
 - fixed trailing space in jvmtiEnvBase.hpp
 - 8346143: add ClearAllFramePops function to speedup debugger single stepping in some cases

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/22744/files
  - new: https://git.openjdk.org/jdk/pull/22744/files/21ca5294..6a8e37aa

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=22744&range=07
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=22744&range=06-07

  Stats: 21029 lines in 649 files changed: 15125 ins; 3706 del; 2198 mod
  Patch: https://git.openjdk.org/jdk/pull/22744.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/22744/head:pull/22744

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


More information about the hotspot-dev mailing list