> 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

Reply via email to