2010-09-27 67 views
1

我正在研究處理異常的子項目(.NET)。下面是我的要求如何在例外情況下采用小型轉儲程序

當異常發生時,異常組件必須捕獲

  1. CPU信息
  2. 造成的問題
  3. 造成的問題
  4. 環境信息數據的方法(路徑和其他信息)

在上述所有這些,最棘手的部分將得到th導致問題的數據。

數據可以存儲在方法體內的任何地方。它可能是方法參數,局部變量,對象等。我相信在.Net中沒有可用的接口,它可以在異常時暴露內存中的數據。所以我正考慮在例外期間進行小型轉儲。 .Net能否創建小型轉儲?

我的軟件環境是。 .Net 3.5,WCF,Silverlight

確實會傳遞給我一些鏈接。

謝謝

+0

不是不禮貌,但誰提出了這些要求?我從來沒有一個例外,並認爲,「天哪,如果只有我有關於CPU的當前狀態和所有環境變量的信息,我會有這個錯誤舔!」 – Will 2010-09-27 18:37:50

+4

嘆息......當人們開始在他們的SO問題中陳述需求時,我討厭它。幾乎感覺他們正在分派任務。我來這裏是爲了擺脫一分鐘的需求。 – 2010-09-27 18:38:09

+0

@jdv,一個需求將包含很多東西,但是我們在這裏問的可能是它的一小部分,我們不知道如何着手開始。這不是我們提出我們的要求,但同時我們不要求其他人完成。像一些鏈接的提示將有利於我們理解。 – Bepenfriends 2010-09-27 18:58:06

回答

1

我寫的呼籲創建小型轉儲本機API一個管理控制檯應用程序。我貼在這裏: Complete Minidump code

它實際上很容易。最難的部分就是確定你想命名你的小型轉儲文件的名字。

1

通過其他答案中描述的方法創建的託管代碼轉儲的調試器支持(或已)有限 - 請參閱@ Jaredpar的信息here

據說Visual Studio 2010支持這個,但是,根據信息here

在Visual Studio 2010中調試器可以讀取 包含有關託管代碼 信息, 非託管代碼,或兩者的混合轉儲文件。 您可以使用正常調試 窗口調試本機和管理的 轉儲。

僅供參考如果您可以設置Process Dumper觸發所選本機異常的進程轉儲 - 不確定如何在受管進程中工作。 fwiw我沒有看到爲什麼本機異常不會觸發轉儲,因爲它發生在CLR範圍之外(在本機代碼堆棧中),也不知道爲什麼這樣的轉儲無法在VS2010中處理。

相關問題