我正在维护一个使用vs6.0构建的遗留应用程序,但现在它被移到vs2005,在编译过程中,它创建了许多.cod文件,我发现这个“汇编、机器代码和源代码(/facs)”编译器开关对此负责。
有谁能告诉我这些.cod文件的用途是什么,以及如何使用这些文件?
这有什么作用是崩溃转储分析吗?
谢谢
汤姆
最佳答案
一般来说,它们用于检查编译器生成的代码。你可能想这么做的原因有很多。有时候你想看看代码的优化程度。有时候你的代码没有按照你期望的方式运行,你想看看是你自己的代码中的错误还是编译器中的错误。
您可以在崩溃转储分析中使用.cod文件,但几乎只能作为最后手段。visual studio 2005通常可以在处理崩溃转储时显示源代码和反汇编。如果没有pdb(或源文件),您只需要返回.cod文件。要将.cod文件与崩溃转储一起使用,还需要.map文件。.cod文件中的地址只与编译器创建的.obj文件相关。.map文件是查找.obj文件链接到exe/dll的位置所必需的。
因此,如果您有.cod文件和相应的.map文件,您可以使用它们来找出代码中的哪一行对应于崩溃转储中的地址。不过,使用ide或者windbg要容易得多。
请注意,visual studio 2005的免费速成版不支持调试崩溃转储。如果有速成版,则需要使用windbg来分析崩溃转储。