调试模式和发布模式调试有什么区别?在发布模式下,加载的符号表包含较少的符号信息,这意味着较少的调试信息。但是,如果我们在 C/C++->Optimization->Optimization 中设置“ Disabled (/Od) ”,那么我看不出两种调试类型有什么区别。调试模式和发布模式(禁用优化)有什么区别吗?
问问题
350 次
1 回答
3
它几乎没有什么魔力。Debug 和 Release 只是分配给一组编译器选项的名称。与 Debug 配置最相关的选项是 /Od 选项,它禁用优化器,因此您的代码更易于调试。
显然,您始终可以将 Release 配置选项更改为类似于 Debug 配置选项。就像禁用优化器一样。现在它们之间不再存在相关差异,并且 Release 配置的行为很像调试器中的 Debug 配置。
调试配置中通常使用的其他影响您的代码的选项:
- _DEBUG 宏已定义,断言将触发
- 函数内联已关闭
- /RTC 选项打开,非常擅长捕捉代码中的错误
- 定义了 _HAS_ITERATOR_DEBUGGING 宏,捕捉使用 STL 类的代码中的错误
- 您将链接到 CRT 的调试版本,在该版本中启用断言
- 调试分配器将被启用,假设你#included crtdbg.h
- 打开编辑+继续支持,副作用是更大的堆栈帧
于 2013-07-17T11:53:39.983 回答