2012-02-10 28 views
2

假設我有一個.NET應用程序在關閉它時崩潰,我想使用DebugDiag來查看發生了什麼。所以我們應該創建一個轉儲文件。我的問題是我們什麼時候創建這個轉儲文件?我應該在創建應用程序時創建它嗎?以及如果我這樣做,它說在這個臨時位置創建了一個轉儲文件...好吧,然後我繼續工作的應用程序,並使其崩潰,但我的困惑是,它很早就創建了轉儲文件,但崩潰發生在最後,所以即使該轉儲文件可以有所幫助?一旦我們使用該應用程序,它會自動更新嗎?什麼時候應該捕獲DUMP文件以進行調試

回答

3

對於崩潰(通常是未處理的異常),您應該在異常成爲第二次機會異常時創建轉儲文件。我對DebugDiag不是很熟悉,但adplus(Debugging Tools for Windows)和ProcDump等工具都可以讓你爲此創建轉儲。

在某些情況下,您可能還想爲第一次機會異常創建轉儲(即在任何代碼處理異常之前)。例如。如果導致崩潰的異常包含了一些其他異常,那麼您可能沒有足夠的信息。在這些情況下,首次機會異常情況下創建轉儲文件將爲您提供有關原始異常狀態的詳細信息。

1

您可以配置Windows以在進程崩潰時創建轉儲文件。此功能默認情況下未啓用:Collecting User-Mode Dumps。 Windows XP的過程不同:Capturing Application Crash Dumps。一旦你有轉儲文件,你可以打開它並與WinDbg調查。我強烈推薦Tess Fernandezbook的博客。

+0

它說:「這個功能不支持自己定製崩潰報告的應用程序,包括.NET應用程序。」 ...和我的應用程序是一個.NET應用程序,這是否意味着我不能使用它? – Bohn 2012-02-10 17:50:40

+1

您可以使用,它很可能意味着.NET應用程序通常會有未處理的異常處理程序(http://msdn.microsoft.com/en-us/library/system.appdomain.unhandledexception.aspx),並且用於本地轉儲在.NET世界。 – Dmitry 2012-02-10 17:52:17

+0

嗯..這很奇怪,文章說去HKEY_LOCAL_MACHINE \ SOFTWARE \微軟\的Windows \ Windows錯誤報告..但我有路徑upto \ Windows ...所以我甚至沒有在註冊表中的Windows錯誤報告文件夾。 ..你認爲我可以自己做出來嗎? – Bohn 2012-02-10 18:18:32

相關問題