代码之家  ›  专栏  ›  技术社区  ›  user2101801

关于编译器选项“汇编、机器代码和源代码(/FAcs)”

  •  1
  • user2101801  · 技术社区  · 10 年前

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

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

    谢谢 汤姆

    1 回复  |  直到 10 年前
        1
  •  2
  •   Ross Ridge    10 年前

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

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

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

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