Search code examples
c++visual-studio-2010debuggingvisual-c++release-mode

How to debug in release mode?


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.


Solution

  • In VS, right click your project, chose "Properties".

    1. Click the C/C++ node. Set Debug Information Format to C7 compatible (/Z7) or Program Database (/Zi).

    2. Expand Linker and click the General node. Set Enable Incremental Linking to No (/INCREMENTAL:NO).

    3. Select the Debugging node. Set Generate Debug Info to Yes (/DEBUG).

    4. 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.