gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:52:51 26 4
gpt4 key购买 nike

我正在维护一个使用 VS6.0 构建的遗留应用程序,但现在它已移至 VS2005,在编译过程中它会创建大量 .COD 文件,我发现这个“程序集、机器代码和源代码 (/FAcs)”编译器switch 对此负责。

谁能告诉我这些 .COD 文件有什么用,如何使用?这对故障转储分析有什么作用吗?

谢谢汤姆

最佳答案

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

您可以在故障转储分析中使用 .COD 文件,但几乎只能作为最后的手段。使用故障转储时,Visual Studio 2005 通常可以向您显示源代码和反汇编。如果您没有 PDB(或源文件),您只需要求助于 .COD 文件。要将 .COD 文件与故障转储一起使用,您还需要一个 .MAP 文件。 .COD 文件中的地址仅相对于编译器创建的 .OBJ 文件。需要 .MAP 文件才能找出 .OBJ 文件链接到 EXE/DLL 的位置。

因此,如果您有 .COD 文件和相应的 .MAP 文件,您可以使用它们找出代码中的哪一行对应于故障转储中的地址。但是,仅使用您的 IDE 或 Windbg 会容易得多。

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

关于windows - 关于编译器选项 "Assembly, Machine Code and Source (/FAcs)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25588317/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com