> This PR prevents the `clhsdb pstack` command from throwing a > `DebuggerException` when obtaining the top frame. The exception occurs when > the PC is within a native library that has no `.eh_frame` section. > > I added a test, `ClhsdbPstackNoEhFrame.java`, that uses a native library > without an `.eh_frame` section. The test fails with a `DebuggerException` > without the fix in `LinuxAARCH64CFrame.java`. > > `getFrameFromReg()` returns the current frame without DWARF information if > DWARF parsing fails and the PC is within a known native library. Unwinding > stops at this frame, but analysis continues for other threads. This behavior > is consistent with the existing `sender()` method. > > #### Testing > I've run the following tests on Linux AArch64. > > $ make run-test > TEST="jtreg:hotspot/jtreg/serviceability/sa/ClhsdbPstackNoEhFrame.java" > TEST TOTAL PASS FAIL ERROR > SKIP > jtreg:test/hotspot/jtreg/serviceability/sa/ClhsdbPstackNoEhFrame.java > 1 1 0 0 > 0 > $ make run-test TEST="jtreg:hotspot/jtreg/serviceability/sa/" > TEST TOTAL PASS FAIL ERROR > SKIP > jtreg:test/hotspot/jtreg/serviceability/sa 81 76 0 0 > 5 > > --------- > - [x] I confirm that I make this contribution in accordance with the [OpenJDK > Interim AI Policy](https://openjdk.org/legal/ai).
Koichi Sakata has updated the pull request incrementally with one additional commit since the last revision: Try to read .debug_frame if no .eh_frame ------------- Changes: - all: https://git.openjdk.org/jdk/pull/33839/files - new: https://git.openjdk.org/jdk/pull/33839/files/0af9bbc0..fecfd146 Webrevs: - full: https://webrevs.openjdk.org/?repo=jdk&pr=33839&range=01 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=33839&range=00-01 Stats: 17 lines in 3 files changed: 14 ins; 0 del; 3 mod Patch: https://git.openjdk.org/jdk/pull/33839.diff Fetch: git fetch https://git.openjdk.org/jdk.git pull/33839/head:pull/33839 PR: https://git.openjdk.org/jdk/pull/33839
