发布模式下的断点和调试

时间:2016-05-04 06:47:20

标签: c++ visual-studio debugging

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

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

  1. "调试信息格式"是正常的吗?在发布模式下设置为/ZI?我注意到,如果我禁用此信息,则不再有断点工作,所以也许我无意中更改了断点。

  2. 在发布模式下本地Windows调试器(F5)中的代码执行速度较慢,而且启动时没有调试" (CTRL + F5)?

1 个答案:

答案 0 :(得分:0)

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

(实际上,在二进制文件中的特定指令上放置一个断点仍然可以工作,只将它映射回源代码赢得了。)

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

2)不,只是产生调试器通常对性能没有影响。

除非实际使用断点和跟踪点,否则最多在硬件中处理前4个断点,并且所有后续断点都会带来开销。

跟踪和分析总是会导致开销。