我在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
答案 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教程系列非常好。
答案 2 :(得分:0)
我想您可能想要购买高级Windows调试。网上没有足够好的东西供你学习。
您可以在此处查看图书网站:
http://www.advancedwindowsdebugging.com/
对于其他一些资源