【问题标题】:Visual Studio 2005 Debugging: Generating MAP file| Crash DumpVisual Studio 2005 调试:生成 MAP 文件|崩溃转储
【发布时间】:2011-09-07 09:56:58
【问题描述】:

大家好,我正在运行 Visual2005 并希望生成 MAP 文件来分析 崩溃情况。

我已启用以下设置。

Linker->Generate MAP    - Yes (/DEBUG)
General Debugging Info  - Yes (/MAP)

并通过将其写入 NULL 位置来使应用程序崩溃。

如果我使用 VS2005 运行 EXE,它会在 EXE 的路径中生成 MAP 文件。

如果我在外面运行 EXE,VS2005 应用程序会崩溃,但没有生成 MAP 文件。

是否需要进行任何其他设置才能生成 MAP 文件。

编辑:我需要分析客户端位置发生的崩溃,我们会给他们一个调试版本的 EXE,当它崩溃时,他们会向我们发送我们可以分析的 DUMP。

【问题讨论】:

    标签: visual-studio map linker


    【解决方案1】:

    AFAIK,MAP 文件是由链接器创建的,而不是在运行时创建的。您需要地图文件或故障转储吗?这是两个不同的东西。

    如果您想为您的程序添加故障转储功能,您需要 MiniDumpWriteDump 函数和全局异常处理程序。然后,您可以使用程序生成的故障转储进行事后调试。在此处查看详细信息:http://www.codeproject.com/KB/debug/postmortemdebug_standalone1.aspx

    关于map文件,你只需要crash地址,然后你可以尝试通过这个地址和map文件找到源代码行。这种技术在很多情况下都不起作用,事后调试要好得多。

    编辑。好吧,您需要一个故障转储,这是一个不错的决定。使用地图文件并不可靠。默认情况下,Windows 用户模式程序不会创建故障转储。此功能必须手动添加。 CodeProject 文章描述了如何做到这一点,并展示了如何进行事后调试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-08-26
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多