RFR: 8317510: Change Windows debug symbol files naming to avoid losing info when an executable and a library share the same name [v4]

Frederic Thevenet fthevenet at openjdk.org
Wed Oct 25 13:07:18 UTC 2023


> When building OpenJDK on Windows using "--with-native-debug-info=external", the resulting debug symbols are saved in files located in the same folder as the corresponding executable or library and named by swapping the extension ".exe" or ".dll" for a ".pdb" one (or "diz" if option "--with-native-debug-info=zipped" is used), which means that in the event of an exe and a dll file sharing the same target folder and file name (e.g. `bin\java.exe` and `bin\java.dll`), we have to choose whether symbols in `bin\java.pdb` will refer to the exe or the dll; we can't have both.
> 
> This PR addresses this issue by adopting a different naming strategy for the resulting symbol files where we keep the full name of every file - including its `dll` or `exe` extension) and then add the appropriate `.pdb`, `.map` or `.diz` extension .
> 
> For instance,  `jvm.dll` symbols are no longer called `jvm.pdb` but instead `jvm.dll.pdb`. Similarly, it is now `jvm.dll.diz` when using zipped symbols, and "jvm.dll.stripped.pdb" for stripped symbols (i.e. when "--with-external-symbols-in-bundles=public" is used).
> 
> The PR also removes the existing filtering for java.pdb, jimage.pdb and jpackage.pdb used to guaranty the dll symbols were bundled over the ones from the exe, since we no longer need that.

Frederic Thevenet 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 four additional commits since the last revision:

 - Merge branch 'openjdk:master' into JDK-8317510
 - Added a test to verify that symbols are available
 - Fixed further places where win symbol files names expected the old convention.
 - 8317510: Change Windows debug symbol files naming to avoid loosing info when an executable and a library share the same name

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

Changes:
  - all: https://git.openjdk.org/jdk/pull/16039/files
  - new: https://git.openjdk.org/jdk/pull/16039/files/ae5c7615..bf75affe

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

  Stats: 36430 lines in 1127 files changed: 23404 ins; 7209 del; 5817 mod
  Patch: https://git.openjdk.org/jdk/pull/16039.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/16039/head:pull/16039

PR: https://git.openjdk.org/jdk/pull/16039


More information about the build-dev mailing list