RFR: 8376269: Mixed jstack cannot find function in vDSO [v4]
Yasumasa Suenaga
ysuenaga at openjdk.org
Tue Feb 3 10:24:43 UTC 2026
> Some functions / signal trampoline would be provided by vDSO in Linux. However SA cannot find symbols in it because it is not a regular ELF, it is on the memory only.
> For example, mixed jstack could not decode the symbol in the coredump crashed in gettimeofday(2) as following:
>
>
> 0x00007faae3dd0818 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void const*, void const*) + 0x58
> 0x00007faae3aff1ba JVM_handle_linux_signal + 0x42a
> 0x00007faae4ad9290 <signal handler called>
> 0x00007faae4cd8e69 ????????
> 0x00007faaca78ffa1 <nep_invoker_blob>
> 0x00007faaca73fd48 * java.lang.invoke.LambdaForm$MH+0x0000000028156c00.invoke(java.lang.Object, long, long, long) bci:12 (Interpreted frame)
>
>
> It should be:
>
>
> 0x00007fb5841d0818 VMError::report_and_die(Thread*, unsigned int, unsigned char*, void const*, void const*) + 0x58
> 0x00007fb583eff1ba JVM_handle_linux_signal + 0x42a
> 0x00007fb584fd9290 <signal handler called>
> 0x00007fb5851d8e69 __cvdso_gettimeofday_data.constprop.0 + 0x99
> 0x00007fb56a78f321 <nep_invoker_blob>
> 0x00007fb56a73fd48 * java.lang.invoke.LambdaForm$MH+0x000000000e156c00.invoke(java.lang.Object, long, long, long) bci:12 (Interpreted frame)
>
>
> Some platforms (Ubuntu 24.04 and Fedora 43 at least) provide vDSO binary in `/lib/modules/<kernel version>/vdso`. This patch attempts to load it if we can refer it because we want to use debuginfo of vDSO if possible. Otherwise load vDSO memory.
Yasumasa Suenaga has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains eight additional commits since the last revision:
- Update testcase to skip if kernel debuginfo is not available
- Merge branch 'master' into JDK-8376269
- Add new function to handle vDSO
- Remove unneeded change
- Remove 32 bit support
- Update src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c
Co-authored-by: Chris Plummer <chris.plummer at oracle.com>
- Update src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c
Co-authored-by: Chris Plummer <chris.plummer at oracle.com>
- 8376269: Mixed jstack cannot find function in vDSO
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/29400/files
- new: https://git.openjdk.org/jdk/pull/29400/files/38daaa32..264250a9
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=29400&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=29400&range=02-03
Stats: 49993 lines in 766 files changed: 23834 ins; 16528 del; 9631 mod
Patch: https://git.openjdk.org/jdk/pull/29400.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/29400/head:pull/29400
PR: https://git.openjdk.org/jdk/pull/29400
More information about the serviceability-dev
mailing list