2010-09-06 82 views
0

我有一個問題。我的程序在啓動時崩潰,沒有任何堆棧跟蹤。我唯一能看到的是「發送報告給微軟」。這隻發生在一臺PC上。爲什麼在發生異常時不顯示堆棧跟蹤?

你能解釋我嗎爲什麼有些例外是堆棧跟蹤和一些沒有?

謝謝。

+0

應用程序是在Debug或Release模式下編譯的嗎?什麼是.NET Framework和操作系統版本?如果您嘗試爲每個異常保存堆棧跟蹤,會發生什麼情況,即。使用全局'try/catch'模塊並在終止應用程序之前保存異常跟蹤? – 2010-09-06 09:12:01

+0

發佈模式; .Net Framework 3.5; Windows XP德語;全球try/catch沒有得到任何結果.. – Yuriy 2010-09-06 09:24:37

回答

2

默認情況下,未顯示堆棧跟蹤用於不顯示異常。

如果配置了適當安裝的調試器(例如正常安裝Visual Studio),那麼程序崩潰時將提示您啓動調試器會話,否則顯示「發送報告」選項。

其他任何東西都在執行該程序。

我建議看看類似procdump(Sysinternals)的東西來捕獲一個內存轉儲,從這個轉儲中VS可以給你一個堆棧跟蹤(和更多的細節)來幫助診斷問題。

1

一種可能性是應用程序在加載.Net框架並執行Main()函數之前崩潰。

我會建議檢查事件查看器,或運行它在調試器,如windbg下。