On Sun, 25 Jan 2026 03:55:13 GMT, Yasumasa Suenaga <[email protected]> wrote:
> 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. This pull request has now been integrated. Changeset: 77e680b1 Author: Yasumasa Suenaga <[email protected]> URL: https://git.openjdk.org/jdk/commit/77e680b11efea0eb707b72f4f3bb9e3422e170fd Stats: 225 lines in 5 files changed: 217 ins; 0 del; 8 mod 8376269: Mixed jstack cannot find function in vDSO Reviewed-by: kevinw, cjplummer ------------- PR: https://git.openjdk.org/jdk/pull/29400
