【问题标题】:Breakpoints and debug in release mode发布模式下的断点和调试
【发布时间】:2016-05-04 06:47:20
【问题描述】:

这是我第一次在 VS 中使用发布模式,我一直使用调试模式,我对如何在发布配置中优化代码印象深刻!

但无论如何,我很惊讶即使在发布配置中我仍然可以使用“本地 Windows 调试器”,特别是因为似乎 debug in release mode is not obvious(而在我的情况下,我没有更改任何选项)。所以我的问题是:

  1. release模式下的“Debug Information Format”设置为/ZI是否正常?我注意到如果我禁用此信息,断点将不再起作用,所以我可能无意中更改了它。

  2. 本地 Windows 调试器 (F5) 在发布模式下的代码执行速度较慢是“不调试就启动”(CTRL+F5)?

【问题讨论】:

    标签: c++ visual-studio debugging


    【解决方案1】:

    1) 没有任何调试信息,断点就无法工作,因为无法将特定代码行与二进制文件中的地址相关联。

    (实际上,在二进制文件中的特定指令上放置断点仍然可以,只是将其映射回源代码是不行的。)

    如果您将调试信息格式从 /ZI 降低到 /Zi,将启用进一步的优化,但作为回报,某些调试功能(例如实时编辑变量内容)已经不可用。另请参阅https://msdn.microsoft.com/en-us/library/958x11bc.aspx 了解更多详情。

    2) 不,只生成调试器通常不会影响性能。

    除非实际使用断点和跟踪点,其中最多前 4 个断点在硬件中处理,而后面的所有断点都会带来开销。

    跟踪和分析总是会产生开销。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 2014-02-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-29
      相关资源
      最近更新 更多