2010-01-09 68 views
7

我有一個多線程的.Net C#應用程序,它使用Direct3D 9/10和XAudio2。 (Direct3D只能通過一個線程訪問,對於XAudio2也是如此Direct3D不是問題導致錯誤在DX9或DX10模式下顯示,但其行爲沒有任何變化。)沒有任何異常的應用程序崩潰

有時(有些區域給出這個問題隨機)這個應用程序崩潰在一個相當不尋常的方式。即使應用程序是通過帶有調試器的visual studio啓動的,它也會崩潰而不會給出任何類型的異常。 (它開始說「applicationname.svchost.exe崩潰了,等等..等等。你想調試嗎?」,如果我按是它告訴我「你不能調試已關閉的應用程序」。)

There沒有辦法找出崩潰的原因是什麼?因爲我已經沒有想法了,調試器根本沒有給我任何信息。沒有例外,我甚至不能執行堆棧跟蹤或轉儲。 P(我假設是一個同步問題(甚至認爲在那個領域我只做順序工作......),但嘿爲什麼不發起異常?:|)

在問題發生我正在卸載重新加載一系列與小說有關的類(在順序核心線程中,所以我懷疑它可能是一個問題),並通過XAudio2啓動一個新的音樂(順便說一下,什麼是m有關XAudio2的超線程考慮?從多個線程調用是否安全?)

感謝您的幫助。

P.S.有一個軟件可以連接到我的監控所有電話,並告訴我什麼是崩潰前的最後一次通話?

+0

您應該發佈程序崩潰時所得到的確切消息。我懷疑它實際上是說「墜毀」。錯誤消息中可能有一些有用的線索。 – Jacob 2010-01-10 00:34:36

+0

沒有消息,沒有VS調試器給出的異常,消息是「應用程序name.svchost.exe停止工作,你想調試嗎?」,如果我按是開始另一個視覺工作室,並告訴我「你不能調試應用程序已關閉「 – feal87 2010-01-10 08:07:13

回答

4

你應該嘗試使用Windbg,分析故障轉儲應該指出你的問題,如果你懷疑是正確的,並且它是一個同步問題,問題的原因可能很難發現。

+0

我發現了使用Windbg的問題,這是與XAudio2的一些瘋狂的錯誤。謝謝! – feal87 2010-01-12 15:32:40

2

您是否在Windows管理面板中檢查過事件日誌? 任何類型的所有錯誤總是以最少的細節記錄在本節中。

有一次,我有一個崩潰的應用程序沒有例外,我發現唯一的幫助是事件日誌查看器,我發現崩潰的來源是一個StackOverflowException。

+0

檢查,沒有錯誤與我的應用程序或視覺工作室有關... – feal87 2010-01-09 23:02:42

+0

機會是錯誤將在事件日誌中,也許在一些晦澀的服務或DLL? – AUSteve 2010-01-10 08:26:59

+0

不,沒有消息。 – feal87 2010-01-10 10:06:18

相關問題