RFR: 8376269: Mixed jstack cannot find function in vDSO [v6]
Yasumasa Suenaga
ysuenaga at openjdk.org
Thu Feb 5 11:39:22 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 incrementally with two additional commits since the last revision:
- Update comments
- Use lib_base_diff to compare with vDSO vaddr
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/29400/files
- new: https://git.openjdk.org/jdk/pull/29400/files/72256c45..f9ce546b
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=29400&range=05
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=29400&range=04-05
Stats: 8 lines in 1 file changed: 2 ins; 0 del; 6 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