Visual Studio 2005调试:生成MAP文件|崩溃转储

时间:2011-09-07 09:56:59

标签: visual-studio map linker

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

我启用了以下设置。

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

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

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

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

我是否需要执行任何其他设置来生成MAP文件。

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

1 个答案:

答案 0 :(得分:1)

AFAIK,MAP文件由链接器创建,而不是在运行时创建。您需要地图文件还是崩溃转储?这是两件不同的事情。

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

关于地图文件,您只需要崩溃地址,然后您可以尝试通过此地址和地图文件查找源代码行。这种技术在许多情况下都不起作用,事后调试要好得多。

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