Codeview是一种更老的调试格式,它是在20世纪80年代中期的"微软C编译器"时代与微软旧的独立调试器一起引入的.它在磁盘上占用更多空间,调试器解析需要更长的时间,在链接过程中处理起来很麻烦.当我在1998-2000中使用CodeWarrior for Windows时,我们从编译器生成了它.
一个优点是Codeview是一种文档格式,其他工具通常可以在它们无法处理PDB格式的调试数据库时进行处理.此外,如果您一次构建多个文件,则无法写入项目的调试数据库.但是,对于目前的大多数用途,使用PDB格式是一个巨大的胜利,无论是在构建时,尤其是在调试器启动时.
Codeview是一种更老的调试格式,它是在20世纪80年代中期的"微软C编译器"时代与微软旧的独立调试器一起引入的.它在磁盘上占用更多空间,调试器解析需要更长的时间,在链接过程中处理起来很麻烦.当我在1998-2000中使用CodeWarrior for Windows时,我们从编译器生成了它.
一个优点是Codeview是一种文档格式,其他工具通常可以在它们无法处理PDB格式的调试数据库时进行处理.此外,如果您一次构建多个文件,则无法写入项目的调试数据库.但是,对于目前的大多数用途,使用PDB格式是一个巨大的胜利,无论是在构建时,尤其是在调试器启动时.
旧C7格式的一个优点是它是一体机,存储在EXE中,而不是单独的PDB和EXE.这意味着你永远不会有不匹配.VS开发工具将确保PDB在使用之前与其EXE匹配,但是只需一个EXE就可以更轻松地拥有所需的一切.
这增加了在发布时需要能够剥离调试信息的新问题,以及巨大的EXE文件,更不用说古老的格式和缺乏对minrebuild等其他现代功能的支持,但它仍然可以帮助您尽量让事情变得简单.一个文件比两个文件容易.
并不是说我曾经使用C7格式,我只是把它作为一个可能的优势,因为你问.
顺便说一句,这就是GCC在我正在使用的几个平台上做事情的方式.DWARF2格式隐藏在输出ELF中.Unix人认为他们太热闹了.:)
BTW可以使用DIA SDK解析PDB格式.