如何调试崩溃的转储文件?

时间:2011-05-16 15:29:39

标签: c# asp.net iis iis-7

我在Windows Server 2008上运行Debug Diagnostic工具。它创建了转储文件。 因为我的asp.net应用程序提供了一个例外的时间。

我需要一步一步的说明如何调试转储文件。我需要在生产服务器或本地调试吗?我需要什么?如何配置?

如何确定应用程序在哪里出现问题?

还有其他方法可以阅读转储文件吗?

这篇帖子我发现它对转储文件有很好的解释,但它们没有解释调试部分

http://blogs.msdn.com/b/tess/archive/2009/03/20/debugging-a-net-crash-with-rules-in-debug-diag.aspx

3 个答案:

答案 0 :(得分:10)

调试转储所需要的只是WinDbg,可以从Microsoft和随框架附带的SOS下载。

启动WinDbg并从“文件”菜单加载转储文件。这将告诉您有关转储的一些初始信息。这会告诉你你正在看的那种转储。

使用命令.symfix设置符号。

使用命令.loadby sos clr(.NET 4)或.loadby sos mscorwks(以前版本的.NET)加载SOS。

使用!threads命令查看转储文件中的线程。注意最右边的例外列。如果您在此列中看到任何异常,请使用!pe <EXCEPTION OBJECT>命令获取详细信息。

有关其他信息,请阅读Tess' blog上的部分帖子。

答案 1 :(得分:1)

我认为你的问题没有简单的答案,因为有太多不同的场景。

然而,我可以给你一些基本的流程,但你需要明确地查看书籍或网站以找到更多信息。

首先,如果您有该应用程序的pdb文件和源代码,请尝试加载它们并将它们指向源代码。 一旦你拥有它们,尝试通过输入'lm'来查看所有加载的模块,如果你没有看到你的模块,你可以通过输入'.reload / f your-module.exe'来加载它。

其次,在windbg中加载崩溃转储后尝试'analyze -v'命令。

如果配置正确,windbg可能会指出它遇到崩溃的确切源代码行。

最后,在配置符号时,还请添加Microsoft符号服务器以简化调试会话。

有许多书籍和网站可以提供帮助,但我认为codeproject教程系列非常好。

这是第一个系列。 http://www.codeproject.com/KB/debug/cdbntsd.aspx

答案 2 :(得分:0)

我想您可能想要购买高级Windows调试。网上没有足够好的东西供你学习。

http://www.amazon.com/Advanced-Windows-Debugging-Mario-Hewardt/dp/0321374460/ref=sr_1_1?ie=UTF8&qid=1305567440&sr=8-1

您可以在此处查看图书网站:

http://www.advancedwindowsdebugging.com/

对于其他一些资源