Ask Learn
Preview
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign inThis browser is no longer supported.
Upgrade to Microsoft Edge to take advantage of the latest features, security updates, and technical support.
Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
[原文作者] YongKang Zhu [MSFT]
[原文发表时间] 3/14/2018
映射文件是一个纯文本文件,其中包含有关链接器生成的二进制文件中存在的某些名称和符号的信息。它还包含二进制文件中的所有段的详细信息(代码,数据等)以及每个符号定义在哪个OBJ / LIB中。Windows调试器(如windbg.exe)可以使用映射文件来帮助定位程序崩溃的位置。映射文件是一种古老的技术:使用MSVC工具集的现代版本,PDB(程序数据库)文件可以完成所有映射文件的工作。
生成一个映射文件需要很长时间。如果你不需要映射文件但却在构建时看到了链接器选项/MAP,你应该移除它加快构建速度。最近我们已经完成了加速生成映射文件的工作,但是生成映射文件仍是一个缓慢的过程。
如果你是少数需要映射文件的人之一(例如,为了快速检查感兴趣的函数集或数据是否按照预期的或正确的二进制顺序排列),请放心,我们不会移除它。但是,以下几点将说明为什么您应该关闭/ MAP并使用PDB:
最后,我们已经发布 DIA API ,人们可以使用它来编写自己的工具来从PDB文件中检索当前在映射文件中可用的所有信息。
我们知道构建的吞吐量对于开发人员非常重要,我们正在继续改进我们的工具集的吞吐量性能。你可以阅读我们最近发布的博客 Visual Studio 2017 吞吐量的改进和建议 来了解更多我们为提高吞吐量所做的事情。记住检查你的构建选项看看你是否在生成不必要的映射文件!
如果您对我们有任何意见或建议,请告诉我们。您可以通过在下方评论,通过电子邮件(visualcpp@microsoft.com )与我们联系,您也可以通过产品中的 帮助>报告问题 或通过 开发者社区提供反馈。您还可以在Twitter(@VisualC )和Facebook(msftvisualcpp )上找到我们。
Ask Learn is an AI assistant that can answer questions, clarify concepts, and define terms using trusted Microsoft documentation.
Please sign in to use Ask Learn.
Sign in