作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我必须调试一个 c++ 项目,但由于一个依赖项无法在 Debug模式下编译,并且到目前为止我还无法解决该问题,我想尝试在 Release模式下调试该项目。
目前应用程序由于空指针而崩溃,但我没有导致错误的代码。由于在 Release模式下显然忽略了断点,我想知道找到错误的最佳方法是什么。
最佳答案
在 VS 中,右键单击您的项目,选择“属性”。
单击 C/C++ 节点。将调试信息格式设置为 C7 兼容 (/Z7) 或程序数据库 (/Zi)。
展开链接器并单击常规节点。将启用增量链接设置为否 (/INCREMENTAL:NO)。
选择调试节点。将生成调试信息设置为是 (/DEBUG)。
选择优化节点。将引用设置为是 (/OPT:REF)。
if /OPT:REF is specified, /OPT:ICF is on by default.
这是直接从微软的文档中摘录的:
我一直这样做,而且几乎不再在 Debug模式下进行调试。如您所知,在发布版本中发生的许多错误可能不会在调试版本中发生(几乎可以肯定是调用 UB 产生的错误)。
另外,我在一个项目中工作,该项目使用大量图像处理并对大图像执行大量压缩/解压缩。使用慢速调试构建根本不切实际。
关于c++ - 如何在 Release模式下调试?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11253334/
我是一名优秀的程序员,十分优秀!