禁用为C/++中的某些行生成调试符号?

1 c c++ visual-studio-2010 visual-c++

是否可以指定某些代码块,我不希望在VC++ 2010的Debug构建中生成调试符号?那么这些部件可以以优化的速度运行,而其他(逻辑)代码块可以调试吗?

原因是我必须读取一个带有百万+行的输入文件,这在调试模式下很慢,但我不想使用较小的示例输入文件.

干杯,迈克

Mic*_*urr 5

一对建议:

  • 每个C或C++文件都可以单独指定选项 - 这在您使用命令行进行编译时很明显,但您也可以在IDE中执行此操作.没有必要设置一个单独的项目.只需右键单击要为其设置"特殊"的文件,然后选择"属性".这样做的一大缺点是,特定文件与项目设置的设置不同并不明显,因此当您忘记特定于文件的属性后,如果事情似乎没有像您期望的那样构建,则可能会造成混淆.已经设定好了.
  • 你可以尝试使用optimizepragma(http://msdn.microsoft.com/en-us/library/chh3fb0k.aspx)看看它是否会做你想要的

请注意,符号生成和优化是分开的 - 优化的代码可以生成符号而不会损害优化(但由于优化调试器可能仍然会混淆跟踪或设置断点).但是没有太多理由试图压缩特定文件的符号(除非为了混淆目的).

需要注意的一些其他事项是调试和非调试运行时之间也存在差异 - 您只能链接到其中一个或另一个.因此,如果您想要摆脱的缓慢是在调试运行时,您将不得不链接到非调试运行时,这可能会妨碍您在其他方面进行调试.如果您正在使用C++,那么还存在调试和安全迭代器(由_HAS_ITERATOR_DEBUGGING_SECURE_SCL宏控制)的问题 - 您不能混合和匹配使用这些迭代器配置的不同设置编译的代码(请参阅Visual Studio调试迭代器).