On Mon, 22 Jun 2026 20:08:03 GMT, Chris Plummer <[email protected]> wrote:

>> `jhsdb jstack --mixed` would try to unwind all of native call frames. It 
>> will reach `_start()` (startup routine by glibc), but it couldn't on the JDK 
>> built by older glibc such as glibc-2.12 (used in devkit for Linux x86_64).
>> 
>> Expected:
>> 
>> 0x000055ad324dfadb main + 0x13b
>> 0x00007f3df876c681 __libc_start_call_main + 0x81
>> 0x00007f3df876c798 __libc_start_main_alias_2 + 0x88
>> 0x000055ad324dfb79 _start + 0x25
>> 
>> 
>> Actual (no `_start` in call stacks):
>> 
>> 0x000055ad324dfadb main + 0x13b
>> 0x00007f3df876c681 __libc_start_call_main + 0x81
>> 0x00007f3df876c798 __libc_start_main_alias_2 + 0x88
>> 
>> 
>> Startup routine would be provided by crt1.o, and it would be linked into 
>> `java`. `_start()` in crt1.o by glibc-2.12 does not have Frame Description 
>> Entry (FDE) in DWARF. In DWARF parser in SA assumes native function has FDE, 
>> thus unwinder in SA would stop if it cannot find appropriate DWARF 
>> information.
>> 
>> I saw the problem on `_start()` only so far. This is not critical, but same 
>> problem can happen on other places (functions / libraries). We cannot find 
>> caller frame from DWARF-less function of course, but we should show the 
>> frame even if it does not have DWARF.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> src/jdk.hotspot.agent/share/classes/sun/jvm/hotspot/debugger/linux/amd64/LinuxAMD64CFrame.java
>  line 104:
> 
>> 102:      }
>> 103: 
>> 104:      senderFP = getSenderFP(senderFP);
> 
> Why is this needed for ARM64, but not AARCH64?

I assume you commented why this change is needed for AMD64 only.

`senderFP` is needed by creating new `LinuxAMD64CFrame` at L120, so it have to 
be moved to here.
In `LinuxAARCH64CFrame`, it has already been placed before where it is needed.

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31230#discussion_r3456308387

Reply via email to