关于'可调试性'的/ Z7和/ Zi之间的区别

时间:2013-10-23 13:05:29

标签: c++ visual-studio-2010 debugging pdb-files

我正在管理一个关于xxx源文件的大型应用程序(Visual Studio 2010)。

很多年以来,我们使用/ Zi编译我们的发布版本以获取存储在我们的符号服务器中的PDB文件。多年来,我们注意到我们的构建脚本变得越来越慢,现在构建可执行文件需要2个多小时。

What are the implications of using /Zi vs /Z7 for Visual Studio C++ projects?这样的问题似乎表明/ Z7是一种旧格式,并且/ Zi是首选。

然而,我们尝试使用/ Z7执行构建脚本,我们看到从2小时到大约20分钟的大量时间缩短。 我们还尝试使用/ Zi但每个源文件使用1个PDB文件(链接器仍在一个大PDB文件中合并),这也提高了编译性能,但略微降低了链接时间性能。

为了优化构建时间,我想切换回/ Z7(链接器最终仍会生成PDB文件),但我不确定这是否会对应用程序的“可调试性”产生影响。

问题:

  • 使用/ Z7编译时,链接器生成的PDB文件的内部调试格式是否与/ Zi相比(格式相同,只是编译器存储调试信息的地方不同) ?
  • 与/ Zi?
  • 相比,/ Z7是否会阻止某些调试
  • 对于发布版本,一般建议使用哪种调试格式(/ Zi,/ Z7)?

0 个答案:

没有答案