> 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 <[email protected]> - Update src/jdk.hotspot.agent/linux/native/libsaproc/ps_core.c Co-authored-by: Chris Plummer <[email protected]> - 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
