gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-04 00:41:31 26 4
gpt4 key购买 nike

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

原因是我必须读取一个包含数百万行的输入文件,这在 Debug模式下非常慢,但我不想使用较小的示例输入文件。

干杯,迈克

最佳答案

一些建议:

  • 每个 C 或 C++ 文件都可以单独指定选项 - 这在您使用命令行编译时很明显,但您也可以在 IDE 中这样做。无需设置单独的项目。只需右键单击要对其进行“特殊”设置的文件,然后选择“属性”。这样做的最大缺点是特定文件的设置与项目设置不同并不明显,因此当您忘记了文件特定的属性后似乎没有像您期望的那样构建时可能会造成混淆已设置。
  • 您可以尝试使用optimize pragma ( http://msdn.microsoft.com/en-us/library/chh3fb0k.aspx ) 看看它是否能达到您的要求

请注意,符号生成和优化是分开的事情 - 优化代码可以在不损害优化的情况下生成符号(但由于优化,调试器可能仍然会混淆跟踪或设置断点)。但是没有太多理由尝试抑制特定文件的符号(除非可能出于混淆目的)。

需要注意的一些额外事项是调试运行时和非调试运行时之间也存在差异 - 您可以仅链接到一个或另一个。所以,如果你想摆脱的缓慢是在调试运行时,你将不得不链接到非调试运行时,这可能会妨碍你在其他方面进行调试。如果您使用的是 C++,还存在调试和安全迭代器的问题(由 _HAS_ITERATOR_DEBUGGING_SECURE_SCL 宏控制)——您不能混合和匹配已被定义的代码使用这些迭代器配置的不同设置进行编译(参见 Visual Studio debug iterators )。

关于c++ - 禁用为 C/++ 中的某些行生成调试符号?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6288187/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com