RFR: 8273967: gtest os.dll_address_to_function_and_library_name_vm fails on macOS12

Daniel D.Daugherty dcubed at openjdk.java.net
Mon Nov 1 15:40:37 UTC 2021


macOS12 has changed the dladdr() function to accept "-1" as a valid address and
we have functions that use dladdr() to convert DLL addresses into function or
library names. We also have a gtest that verifies that "-1" is not a valid value to use
as a symbol address.

As you might imagine, existing code that uses `os::dll_address_to_function_name()`
or `os::dll_address_to_library_name()` can get quite confused (and sometimes crash)
if an `addr` parameter of `-1` was allowed to be used.

I've also made two cleanup changes as part of this fix:

1) In `src/hotspot/os/bsd/os_bsd.cpp` there is some macOS specific code that should
   be properly `#ifdef`'ed. There is also some code that makes sense for ELF format
   files, but not for Mach-O format files so that code needs to be excluded on macOS.

2) In `src/hotspot/share/runtime/os.cpp` I noticed a simple typo in a comment on an
    `#endif` that I fixed. That typo does not appear anywhere else in the HotSpot code
    base so I'd like to fix it with this bug ID since I'm in related areas.

This fix has been tested with Mach5 Tier[1-6].

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

Commit messages:
 - 8273967.cr0.patch

Changes: https://git.openjdk.java.net/jdk/pull/6193/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=6193&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8273967
  Stats: 50 lines in 4 files changed: 43 ins; 5 del; 2 mod
  Patch: https://git.openjdk.java.net/jdk/pull/6193.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/6193/head:pull/6193

PR: https://git.openjdk.java.net/jdk/pull/6193


More information about the serviceability-dev mailing list