> Hi, could I have a review of this patch. This patch fixes > [JDK-8391637](https://bugs.openjdk.org/browse/JDK-8391637). > > Due to my GitHub account settings (Enable Copilot Code Review for all my > PRs), my previous [PR](https://github.com/openjdk/jdk/pull/33358) had Copilot > Review enabled by default. I have disabled it and now open this new PR, with > no changes made to the code. > > On `risc-v`, > [LinuxRISCV64CFrame.sender()](https://github.com/openjdk/jdk/blob/c368bac40e185398fbc40dc4d75a457f7a36f954/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/riscv64/LinuxRISCV64CFrame.java#L70) > validates only FP alignment, then dereferences FP for SP, link, and return > address. An aligned arbitrary FP (such as 0x90) can therefore cause > UnmappedAddressException, and lead to incomplete stack for the target thread. > > `aarch64` and `amdf64`already use `dwarf` to unwind native frames, see > https://github.com/openjdk/jdk/blob/c368bac40e185398fbc40dc4d75a457f7a36f954/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java#L36 > https://github.com/openjdk/jdk/blob/c368bac40e185398fbc40dc4d75a457f7a36f954/src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/aarch64/LinuxAARCH64CFrame.java#L38 > > This patch makes `risc-v` to unwind with `dwarf` too. > > The `risc-v` version basically has the same design as the `aarch64` version. > There are also several differences , primarily due to differences in calling > conventions. Almost every difference is accompanied by an explanatory > comment. > > I have ran tests in `test/hotspot/jtreg/serviceability/sa` on `risc-v` and > `amd64`, all passed. > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Long Yang has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains nine commits: - Merge branch 'master' into fix-8391637 - Enable TestJhsdbJstackMixedWithXComp.java on riscv64 while excluding QEMU environments - Enable -fasynchronous-unwind-tables for linux-riscv64 - Add try/catch for memory-read exceptions in getSenderFP - RISC-V: Use compiler-defined macros for DWARF register selection - Recover caller return addresses across save helpers - Use the CIE return-address column instead of the hard-coded RA register - Add comment - 8391637: On the RISC-V platform, TestJhsdbJstackMixed has a certain probability of failure ------------- Changes: https://git.openjdk.org/jdk/pull/33374/files Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=33374&range=07 Stats: 486 lines in 15 files changed: 382 ins; 30 del; 74 mod Patch: https://git.openjdk.org/jdk/pull/33374.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/33374/head:pull/33374 PR: https://git.openjdk.org/jdk/pull/33374
