.NET的核心转储实用程序

时间:2012-03-28 11:26:33

标签: c# asp.net debugging

在我作为COBOL大型机开发人员的前世中,我广泛使用了一个名为Abendaid的工具,如果发生异常,它会给我一个完整的内存转储,包括内存中每个变量的格式化列表以及突出显示违规语句的程序的完整堆栈跟踪。这使得查明错误原因变得更加简单,并节省了大量的逐步调试和/或跟踪语句。

现在我已经过渡到C#和.NET Web开发我发现ASP.NET提供的信息只讲述了一半的故事,给了我一个堆栈跟踪,但没有任何变量或类信息。这使得调试变得更加困难,因为您必须使用调试器再次运行该过程以尝试重现错误,对于间歇性错误或在SQL Server或CRM之类的程序集下运行的程序集不容易。

我已经看了很多东西,但是我找不到任何明显的东西。有没有人知道是否有一个,或者如果没有,我需要开始写一个?

3 个答案:

答案 0 :(得分:1)

查看DebugDiag.exe - 它包含用于获取内存转储的实用程序,可以使用windbg进行分析。

  

调试器主机:调试器主机(DbgHost.exe)承载Windows符号调试器引擎(dbgeng.dll)以附加到进程并生成内存转储

(强调我的)

答案 1 :(得分:1)

在广泛搜索“.NET内存转储”后,我发现this是第一个非商业链接。 SO上也有类似的主题:Tool for analyzing .Net app memory dumps

答案 2 :(得分:1)

要自动生成流程转储,您可以:

  • 使用Windows调试工具中的AdPlus(可以将xcopy从工具安装部署到目标计算机:无需在生产中添加安装)。
  • 使用SysInternals的ProcDump

获得转储后,您需要WinDBG中的SoS(“Shrike之子”)扩展来获取.NET级别信息。