当前位置:  开发笔记 > 开发工具 > 正文

使用/ Zi vs/Z7对Visual Studio C++项目有什么影响?

如何解决《使用/Zivs/Z7对VisualStudioC++项目有什么影响?》经验,为你挑选了2个好方法。

Codeview是一种更老的调试格式,它是在20世纪80年代中期的"微软C编译器"时代与微软旧的独立调试器一起引入的.它在磁盘上占用更多空间,调试器解析需要更长的时间,在链接过程中处理起来很麻烦.当我在1998-2000中使用CodeWarrior for Windows时,我们从编译器生成了它.

一个优点是Codeview是一种文档格式,其他工具通常可以在它们无法处理PDB格式的调试数据库时进行处理.此外,如果您一次构建多个文件,则无法写入项目的调试数据库.但是,对于目前的大多数用途,使用PDB格式是一个巨大的胜利,无论是在构建时,尤其是在调试器启动时.



1> Ben Combee..:

Codeview是一种更老的调试格式,它是在20世纪80年代中期的"微软C编译器"时代与微软旧的独立调试器一起引入的.它在磁盘上占用更多空间,调试器解析需要更长的时间,在链接过程中处理起来很麻烦.当我在1998-2000中使用CodeWarrior for Windows时,我们从编译器生成了它.

一个优点是Codeview是一种文档格式,其他工具通常可以在它们无法处理PDB格式的调试数据库时进行处理.此外,如果您一次构建多个文件,则无法写入项目的调试数据库.但是,对于目前的大多数用途,使用PDB格式是一个巨大的胜利,无论是在构建时,尤其是在调试器启动时.


我不能同意.使用Z7构建对我们的项目来说要快得多,特别是在虚拟机上.最后,链接/ DEBUG无论如何都会创建pdbs.但它不能与LTCG一起使用.

2> scobi..:

旧C7格式的一个优点是它是一体机,存储在EXE中,而不是单独的PDB和EXE.这意味着你永远不会有不匹配.VS开发工具将确保PDB在使用之前与其EXE匹配,但是只需一个EXE就可以更轻松地拥有所需的一切.

这增加了在发布时需要能够剥离调试信息的新问题,以及巨大的EXE文件,更不用说古老的格式和缺乏对minrebuild等其他现代功能的支持,但它仍然可以帮助您尽量让事情变得简单.一个文件比两个文件容易.

并不是说我曾经使用C7格式,我只是把它作为一个可能的优势,因为你问.

顺便说一句,这就是GCC在我正在使用的几个平台上做事情的方式.DWARF2格式隐藏在输出ELF中.Unix人认为他们太热闹了.:)

BTW可以使用DIA SDK解析PDB格式.


根据http://msdn.microsoft.com/en-us/library/xe4t6fc1%28v=vs.80%29.aspx,无法创建包含调试信息的.exe或.dll.调试信息始终放在.pdb文件中.这可能是Codeview时代的一个功能,但今天C7只增加了.obj文件,而不是.exe.
推荐阅读
帆侮听我悄悄说星星
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有