I found very little information on the difference between C7 compatible
and Program Database
(there is a third one, Program Database Edit and Continue, but that should be the same as Program Database with the ability to edit and continue). The only solid information I could find was that C7 compatible
embeds the debug information in the obj files, while the Program Database
creates a .pdb
file for debugging purposes.
Is there an upside to using C7 compatible
vs. Program Database
? What is the downside?
Extra notes: I have tried both and so far, the debugging information is preserved properly in both cases
A program database file (extension . pdb) is a binary file that contains type and symbolic debugging information gathered over the course of compiling and linking the project. A PDB file is created when you compile a C/C++ program with /ZI or /Zi or a Visual Basic, Visual C#, or JScript program with the /debug option.
A debugging data format is a means of storing information about a compiled computer program for use by high-level debuggers. Modern debugging data formats store enough information to allow source-level debugging.
RelWithDebugInfo means build with debug symbols, with or without optimizations. Anyway, the debug symbols can be stripped later, both using strip and/or obj-copy. If you use strip, the output can be saved.
Visual Studio projects have separate release and debug configurations for your program. You build the debug version for debugging and the release version for the final release distribution. In debug configuration, your program compiles with full symbolic debug information and no optimization.
It is documented in Generating and Deploying Debug Symbols with Microsoft Visual C++ 6.0 which makes it still relevant today as C7 hasn't changed.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With