Visual C++ - 为什么要使用调试模式呢?

Ext*_*kun 3 c++ debugging release-mode visual-studio

所以我刚刚遵循了为发布模式启用调试符号的建议,并在启用调试符号后,禁用优化并发现如果符号符合发布模式,断点确实有效,我发现自己在想...

  1. 调试模式的目的不是帮助您找到错误吗?
  2. 如果让bug漏过你,为什么还要使用Debug模式呢?

有什么建议?

Pau*_*ell 16

实际上,没有释放模式或调试模式.只有不同的配置启用了不同的选项.释放'模式'和调试'模式'只是常见配置.

您所做的是修改发布配置以启用一些通常在调试配置中启用的选项.

根据您启用的选项,启用这些选项会使二进制文件变大和变慢.

您启用的这些选项越多,查找错误就越容易.我认为你的问题应该是"为什么要担心发布模式?" 答案就是它更小更快.


jal*_*alf 8

调试模式不会"让错过你".它插入检查以捕获大量错误,但这些检查的存在也可能隐藏某些其他错误.所有错误检查代码都会捕获大量错误,但它也可以充当填充,并且可能隐藏细微的边界错误.

所以,这本身应该是足够的理由来运行这两种.MSVC 在调试模式下执行许多额外的错误检查.

此外,还有许多调试工具,例如assert依赖于NDEBUG未定义,这是调试版本中的情况,但默认情况下不在发布版本中.