在发布模式下调试还是更改_iterator_debug_level?

时间:2013-06-25 16:10:09

标签: visual-studio-2010 visual-studio-debugging

我正在使用最初在VS 2006中构建的签出的Visual Studio C ++项目。我想在断点中查看某些函数的调用位置并更好地遵循工作流程。

我在发布模式下在Visual Studio 2010中重建了代码,它构建并运行良好。不幸的是,从一些研究中,我了解到在发布模式下无法点击某些断点,我需要在调试模式下构建代码以达到断点。

但是,当我尝试在调试模式下构建代码时,链接器会抱怨具有错误_ITERATOR_DEBUG_LEVEL的.lib文件。有没有办法可以在.libs中更改此_ITERATOR_DEBUG_LEVEL,以便我可以在调试模式下构建它?如果没有,有没有办法在Release模式或ReleaseWithDebug模式下点击这些断点?

2 个答案:

答案 0 :(得分:0)

我刚刚从Hansleman看到这篇文章:

http://www.hanselman.com/blog/DebugVsReleaseTheBestOfBothWorlds.aspx

它基本上说你可以使用调试设置和ini文件的组合编译优化(发布)和调试而无需重新编译(Debug)。

答案 1 :(得分:0)

您可以通过按如下方式配置项目“属性页”来在发布模式下调试C ++:

  
      
  1. 在C / C ++节点下 - >一般节点。   将“调试信息格式”设置为“C7兼容(/ Z7)”或“程序”   数据库(/ Zi)“。
  2.   
  3. 在链接器节点下 - >一般节点。将“启用增量链接”设置为“否(/ INCREMENTAL:NO)”。
  4.   
  5. 在链接器节点下 - >调试节点。将“生成调试信息”设置为“是(/ DEBUG)”。
  6.   
  7. 在链接器节点下 - >优化节点。将“References”设置为“/ OPT:REF”
  8.   
  9. 在链接器节点下 - >优化节点。将“启用COMDAT折叠”设置为“/ OPT:ICF”。
  10.   

您现在可以调试并逐步完成发布版本应用程序中的代码。

注意:设置属性时,请确保选择了正确的配置和平台(属性页顶部的组合框)