Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Difference between C7 Compatible and Program Database

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

like image 561
Samaursa Avatar asked Nov 14 '10 18:11

Samaursa


People also ask

What is .pdb extension?

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.

What is debug information format?

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.

What is release with debug info?

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.

Can we debug in release mode in Visual Studio?

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.


1 Answers

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.

like image 66
Richard Harrison Avatar answered Sep 27 '22 23:09

Richard Harrison