native debug symbols support on Windows

Erik Joelsson erik.joelsson at
Wed Dec 4 14:46:10 UTC 2019


On 2019-12-04 06:26, Bob Vandette wrote:
> There seems to be an option that will include debug information in generated .obj files.  Assuming this option is supported in the
> versions of Visual Studio we use, it could be used to implement “internal” native debug symbols.
> /Z7

We already use this when compiling, but we still link to external pdb 
files. I was not aware of being able to link with the symbol information 

While this seems like it could be implemented, my question is, does 
anyone need it? The internal symbols on Linux was something the Linux 
distros wanted as they like to move it out in a uniform manner later. I 
can't really see a need for this on Windows, but I certainly wouldn't 
object if someone else do and wants to implement the support in the 
OpenJDK build.


> The /Z7 option produces object files that also contain full symbolic debugging information for use with the debugger. These object files and the built executable can be substantially larger than files that have no debugging information. The symbolic debugging information includes the names and types of variables, as well as functions and line numbers. No PDB file is produced.
> Bob.
>> On Dec 4, 2019, at 9:11 AM, Erik Joelsson <erik.joelsson at> wrote:
>> Correct, with the Microsoft toolchain there is no support for internal. I don't know what happens to the build if you try to configure it that way. Feel free to come up with a reasonable behavior.
>> /Erik
>> On 2019-12-04 00:06, Langer, Christoph wrote:
>>> Hi,
>>> I'm currently looking into native debug symbols support for Windows.
>>> The OpenJDK build system supports these two configure flags --with-native-debug-symbols=<internal|external> (among a few other options which I don't want to discuss here).
>>> So, the name implies that for "internal", debug symbols should be contained in the binaries. And "external" should create separate files that contain the debug symbols. However, to my knowledge, Windows would always make use of external symbol files, named *.pdb. And there is no way to have the debug symbols included in the binaries. Is that correct or am I wrong in this assumption?
>>> If it's true, I guess --with-native-debug-symbols=internal would not make sense on Windows and should rather be rejected by configure. Otherwise, if we were to support --with-native-debug-symbols=internal, the build is broken for target "test-image" when it comes to building/copying the gtest image.
>>> I'd like to fix either the one way or the other. What do people think?
>>> Thanks for your help
>>> Christoph

More information about the core-libs-dev mailing list