On Thu, 5 Oct 2023 15:12:06 GMT, Frederic Thevenet <ftheve...@openjdk.org> 
wrote:

>> 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 incrementally with one 
> additional commit since the last revision:
> 
>   Fixed further places where win symbol files names expected the old 
> convention.

I have added a basic test that verifies that symbols can be resolved by the 
internal jdk tooling that makes use of them, even after the name change for the 
.pdb files.
It relies on the fact that on Windows/MSVC, native frames contains no function 
names when dumped in hs_err if pdb are not available/cannot be loaded.
This is not true for all platforms (e.g. on Linux, function names are present 
in hs_err even when full symbols aren't available), so I have restricted this 
test to run on Windows only.

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

PR Comment: https://git.openjdk.org/jdk/pull/16039#issuecomment-1752629701

Reply via email to