> 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

Reply via email to