> 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 three 
additional commits since the last revision:

 - Add new function to handle vDSO
 - Remove unneeded change
 - Remove 32 bit support

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/29400/files
  - new: https://git.openjdk.org/jdk/pull/29400/files/ecbc096e..38daaa32

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=29400&range=02
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=29400&range=01-02

  Stats: 61 lines in 2 files changed: 32 ins; 28 del; 1 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