我的應用程序有時會崩潰。但在Visual Studio永遠只是輸出:當訪問衝突異常發生時,如何找到wpf應用程序崩潰的位置?
XXAplication返回-1073741819(0000005)「訪問衝突」
所以我甚至不知道哪一部分是崩潰,或行崩潰。 的應用非常大。那麼有沒有什麼辦法可以知道或理解崩潰位置或任何方式可以調試?
UPDATE
對不起球員,啓用: 「通用語言運行時例外」 沒有任何 幫助。仍然只是輸出(0000005)「訪問衝突」。
我的應用程序有時會崩潰。但在Visual Studio永遠只是輸出:當訪問衝突異常發生時,如何找到wpf應用程序崩潰的位置?
XXAplication返回-1073741819(0000005)「訪問衝突」
所以我甚至不知道哪一部分是崩潰,或行崩潰。 的應用非常大。那麼有沒有什麼辦法可以知道或理解崩潰位置或任何方式可以調試?
UPDATE
對不起球員,啓用: 「通用語言運行時例外」 沒有任何 幫助。仍然只是輸出(0000005)「訪問衝突」。
通常情況下,堆棧跟蹤可能無法引導您到任何地方,甚至可能誤導您。即使在像C++這樣的本地平臺上,也很難,但至少他們有工具來幫助診斷這些問題。
訪問衝突錯誤意味着內存損壞。 .net是一個內存管理平臺,因此從技術上講它是不可能的。
但是,當您或框架或第三方庫使用不安全的代碼或調用非託管API時,這是可能的。當其中一個破壞內存時,可能不會立即拋出錯誤。該錯誤可能在其他地方出現。
你可以做的是查看你正在使用的組件,並嘗試將它們升級到最新版本,或嘗試暫時禁用/替換它們。
在我的例子經驗的System.DirectoryServices總成引起了很多這些錯誤的舊的Windows服務器上。我們升級到了更新的Windows和更新的.net,並從此以後就沒有看到過這個錯誤。
聽起來你正在運行從VS應用程序,在IDE中第一次機會異常,所以轉向可能是找出其中的錯誤實際上是最簡單的方法被拋出。如果你去調試|例外...菜單項,這將彈出一個對話框,您可以在其中檢查「公共語言運行時例外」的「投擲」複選框。這將導致調試器中斷拋出異常的位置,即使它是由代碼處理的。
它是C#還是C++? – PiotrK
嗨@PiotrK,它是C#。對不起,我沒有問清楚。 – qakmak
調試 - >例外 - >在投擲時打開公共語言運行時例外 – mydogisbox