On Fri, 23 Oct 2026 06:41:07 GMT, Long Yang <[email protected]> wrote:

> This does happen on RISC-V, and my PR already handles it in 
> LinuxRISCV64CFrame.java:267. In our os::abort() → abort() case, the saved 
> return address is exactly os::die+0. Looking up PC−1 selects os::abort()’s 
> FDE instead.

Before the PC−1 fix
The main thread’s native stack stopped after these two frames:

 0x0000003f992bfada  abort + 0x62
 0x0000003f9818f7ba  os::die()


After the PC−1 fix
The actual SA output continued through os::abort(), VM error reporting, and the 
signal trampoline:

 0x0000003fb546fada  __GI_abort + 0x62
 0x0000003fb418f7ba  os::abort(bool, void const*, void const*) + 0x3b
 0x0000003fb48188c4  VMError::report_and_die(int, char const*, char const*, 
void*, Thread*, unsigned char*, void const*, void const*, char const*, int, 
unsigned long) + 0x5ad
 0x0000003fb3805dbc  report_vm_error(char const*, int, char const*, char 
const*, ...) + 0x85
...

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

PR Comment: https://git.openjdk.org/jdk/pull/33374#issuecomment-6359281345

Reply via email to