发布模式下的断点和调试
Posted
技术标签:
【中文标题】发布模式下的断点和调试【英文标题】:Breakpoints and debug in release mode 【发布时间】:2016-05-04 06:47:20 【问题描述】:这是我第一次在 VS 中使用发布模式,我一直使用调试模式,我对如何在发布配置中优化代码印象深刻!
但无论如何,我很惊讶即使在发布配置中我仍然可以使用“本地 Windows 调试器”,特别是因为似乎 debug in release mode is not obvious(而在我的情况下,我没有更改任何选项)。所以我的问题是:
release模式下的“Debug Information Format”设置为/ZI
是否正常?我注意到如果我禁用此信息,断点将不再起作用,所以我可能无意中更改了它。
本地 Windows 调试器 (F5) 在发布模式下的代码执行速度较慢是“不调试就启动”(CTRL+F5)?
【问题讨论】:
【参考方案1】:1) 没有任何调试信息,断点就无法工作,因为无法将特定代码行与二进制文件中的地址相关联。
(实际上,在二进制文件中的特定指令上放置断点仍然可以,只是将其映射回源代码是不行的。)
如果您将调试信息格式从 /ZI
降低到 /Zi
,将启用进一步的优化,但作为回报,某些调试功能(例如实时编辑变量内容)已经不可用。另请参阅https://msdn.microsoft.com/en-us/library/958x11bc.aspx 了解更多详情。
2) 不,只生成调试器通常不会影响性能。
除非实际使用断点和跟踪点,其中最多前 4 个断点在硬件中处理,而后面的所有断点都会带来开销。
跟踪和分析总是会产生开销。
【讨论】:
以上是关于发布模式下的断点和调试的主要内容,如果未能解决你的问题,请参考以下文章