C# 我们应该在什么时候捕获转储文件进行调试

C# 我们应该在什么时候捕获转储文件进行调试,c#,crash-dumps,C#,Crash Dumps,假设我有一个.NET应用程序在关闭时崩溃,我想使用DebugDiag查看发生了什么。所以我们应该创建一个转储文件。我的问题是我们什么时候创建这个转储文件?我应该在启动应用程序时创建它吗?如果我这么做了,它会说在这个临时位置创建了一个转储文件…好吧..然后我继续工作应用程序并使其崩溃,但我的困惑是,它很早就创建了转储文件,但在最后发生了崩溃,所以即使是转储文件也有帮助吗?一旦我们使用该应用程序,它会自动更新吗?对于崩溃(通常是未处理的异常),您应该在异常成为第二次意外异常时创建转储文件。我不太熟悉

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

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

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

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


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

您可以将windows配置为在进程崩溃时创建转储文件。默认情况下未启用此功能:。Windows XP的进程不同:。一旦你有了转储文件,你就可以打开它并调查。我强烈推荐blog by和this。

您可以将windows配置为在进程崩溃时创建转储文件。默认情况下未启用此功能:。Windows XP的进程不同:。一旦你有了转储文件,你就可以打开它并调查。我强烈推荐blog by和this。

上面说“此功能不支持自行定制崩溃报告的应用程序,包括.NET应用程序。”。。。我的应用程序是一个.NET应用程序,那么这是否意味着我不能使用它?你可以使用,这很可能意味着.NET应用程序通常会有未处理的异常处理程序(),而在.NET world中本机转储的使用较少。嗯…这很奇怪,这篇文章说去HKEY\U LOCAL\U MACHINE\SOFTWARE\Microsoft\Windows\Windows错误报告..但是我有到\Windows的路径…所以我的注册表中甚至没有Windows错误报告文件夹…你认为我可以自己做吗?如果你在XP上,试试这个:它说“此功能不支持执行自定义崩溃报告的应用程序,包括.NET应用程序。”…而且我的应用程序是.NET应用程序,这是否意味着我不能使用此应用程序?您可以使用,这很可能意味着.NET应用程序通常会有未经处理的异常处理程序()而且在.NET world.Hmm.中本机转储的使用更少。这很奇怪,文章说转到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows错误报告..但是我有到\Windows的路径…所以我的注册表中甚至没有Windows错误报告文件夹…你认为我可以自己做吗?如果你在XP上,试试这个: