关于编译器选项"Assembly, Machine Code and Source (/FAcs)"



我正在维护一个使用VS6.0构建的遗留应用程序,但现在它被移到了VS2005,在编译过程中它创建了许多.COD文件,我发现这个"汇编、机器代码和源代码(/FAcs)"编译器开关对此负责。

有人能告诉我这些.COD文件有什么用吗?如何使用这些文件?这有崩溃转储分析的作用吗?

谢谢Tom

一般来说,它们用于检查编译器生成的代码。你可能想要这样做的原因有很多。有时您想看看代码优化得有多好。有时你的代码没有按照你期望的方式运行,你想看看这是你自己代码中的错误还是编译器中的错误。

您可能会在崩溃转储分析中使用.COD文件,但这几乎只是最后的手段。在处理崩溃转储时,VisualStudio2005通常可以向您显示源代码和反汇编。如果你没有PDB(或源文件),你只需要依靠.COD文件。要将.COD文件与崩溃转储一起使用,还需要一个.MAP文件。.COD文件中的地址仅与编译器创建的.OBJ文件相关。MAP文件对于查找.OBJ文件链接到EXE/DLL的位置是必要的。

因此,如果你有.COD文件和相应的.MAP文件,你可以使用它们来找出代码中的哪一行对应于崩溃转储中的地址。然而,只使用IDE或Windbg要容易得多。

请注意,Visual Studio 2005的免费学习版不支持调试崩溃转储。如果您有Express版本,则需要使用Windbg来分析崩溃转储。

最新更新