I have to debug a c++ project, but as one dependency doesn't compile in debug mode and I haven't been able to fix that issue so far, I'd like to try to debug the project in release mode.
Currently the application crashes due to a null pointer, but I haven't the code that's causing the error. As break points apparently are ignored in release-mode, I'd like to know what's the best way find the error.
In VS, right click your project, chose "Properties".
Click the C/C++ node. Set Debug Information Format to C7 compatible (/Z7) or Program Database (/Zi).
Expand Linker and click the General node. Set Enable Incremental Linking to No (/INCREMENTAL:NO).
Select the Debugging node. Set Generate Debug Info to Yes (/DEBUG).
Select the Optimization node. Set References to Yes (/OPT:REF).
if /OPT:REF is specified, /OPT:ICF is on by default.
That's ripped directly from Microsoft's documentation:
I do this all of the time and pretty much never debug in debug mode anymore. As you know, many errors that occur in a release build may not occur in a debug build (almost certainly the errors that arise from invoking UB).
Also, I work on a project which uses a ton of image processing and performs a lot of compression/decompression of large images. Using a slow debug build is simply impractical.