Details
-
Enhancement
-
Status: Resolved
-
P3
-
Resolution: Fixed
-
11, 14, 15
-
b12
-
generic
-
windows
Backports
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-8241547 | 14.0.2 | Christoph Langer | P3 | Resolved | Fixed | b01 |
JDK-8247603 | 13.0.4 | Christoph Langer | P3 | Resolved | Fixed | b05 |
JDK-8241612 | 11.0.8 | Christoph Langer | P3 | Resolved | Fixed | b01 |
Description
Currently the JDK bundle on Windows does not contain pdb files (full pdb files are in a separate symbols bundle).
This leads currently to bad native stack traces e.g. when crashes occur.
One reason not to deliver the full pdb files might be the large size of these files.
However there exist also "public" or stripped pdb files on Windows, see :
https://docs.microsoft.com/en-us/cpp/build/reference/pdbstripped-strip-private-symbols?view=vs-2017
Those are much smaller (often only 10-20% of the full pdb files) and they offer a good compromise (no "file:linenumber" info in the native stacks but at least the function name+hex-offset is visible)
to delivering full pdbs in the JDK.
Example sizes for the currently built full pdbs / stripped pdbs from VS2017 based 64bit build of jdk/jdk :
jvm.pdb : 73,1 MB / 9,46 MB
awt.pdb : 7,05 MB / 1,48 MB
The patch will introduce a new configure option to the build system that gives the builder 3 possibilites. Either ship no debug symbols, public (stripped) pdbs or full pdbs. The option is named '--with-external-symbols-in-bundles' and can have the values 'none', 'public' or 'full'. Default is none.
This leads currently to bad native stack traces e.g. when crashes occur.
One reason not to deliver the full pdb files might be the large size of these files.
However there exist also "public" or stripped pdb files on Windows, see :
https://docs.microsoft.com/en-us/cpp/build/reference/pdbstripped-strip-private-symbols?view=vs-2017
Those are much smaller (often only 10-20% of the full pdb files) and they offer a good compromise (no "file:linenumber" info in the native stacks but at least the function name+hex-offset is visible)
to delivering full pdbs in the JDK.
Example sizes for the currently built full pdbs / stripped pdbs from VS2017 based 64bit build of jdk/jdk :
jvm.pdb : 73,1 MB / 9,46 MB
awt.pdb : 7,05 MB / 1,48 MB
The patch will introduce a new configure option to the build system that gives the builder 3 possibilites. Either ship no debug symbols, public (stripped) pdbs or full pdbs. The option is named '--with-external-symbols-in-bundles' and can have the values 'none', 'public' or 'full'. Default is none.
Attachments
Issue Links
- backported by
-
JDK-8241547 Generate stripped/public pdbs on Windows for jdk images
-
- Resolved
-
-
JDK-8241612 Generate stripped/public pdbs on Windows for jdk images
-
- Resolved
-
-
JDK-8247603 Generate stripped/public pdbs on Windows for jdk images
-
- Resolved
-
- duplicates
-
JDK-8022405 Separate debug info bundles prevents symbols in hs_err_pid files on Windows
-
- Closed
-
- relates to
-
JDK-8022405 Separate debug info bundles prevents symbols in hs_err_pid files on Windows
-
- Closed
-