我们应该在什么时候捕获DUMP文件进行调试



假设我有一个.NET应用程序在关闭时崩溃,我想使用DebugDiag来查看发生了什么。所以我们应该创建一个转储文件。我的问题是我们什么时候创建这个转储文件?我应该在启动应用程序时创建它吗?如果我这样做,它会说在这个临时位置创建了一个转储文件。。。好的…然后我继续处理应用程序并使其崩溃,但我的困惑是,它很早就创建了转储文件,但崩溃发生在最后,所以即使是转储文件也有什么帮助?当我们使用该应用程序时,它会自动更新吗?

对于崩溃(通常是未处理的异常),您应该在异常成为第二次机会异常时创建转储文件。我对DebugDiag不是很熟悉,但adplus(Windows调试工具)和ProcDump等工具都可以让你为此创建转储。

在某些情况下,您可能还想为首次出现的异常创建转储(即,在任何代码处理异常之前)。例如,如果导致崩溃的异常包含其他异常,则此时您可能没有足够的信息。在这些情况下,在第一次出现异常时创建转储文件将为您提供有关原始异常状态的详细信息。

您可以配置windows以在进程崩溃时创建转储文件。默认情况下未启用此功能:收集用户模式转储。Windows XP的过程不同:捕获应用程序崩溃转储。一旦你有了转储文件,你就可以打开它并用WinDbg进行调查。我强烈推荐泰丝·费尔南德斯的博客和这本书。

最新更新