2016-04-22 148 views
0

我想弄清楚爲什麼一個WPF應用程序不會立即退出關閉它。使用進程資源管理器我發現WerFault.exe在退出時啓動,這似乎表明在卸載過程中某些東西崩潰了,也許某些析構函數或處理失敗了。當我最近切換到VS2015時,這開始發生。我正在運行Windows 8.在應用程序退出期間調試崩潰(WPF)

我的問題是:如何才能找出真正的問題是什麼?任何找到WerFault.exe崩潰日誌的方法?我有數以百計的析構函數和dispose-methods,因此在所有這些函數中添加斷點都有點困難。在VS中捕獲這些錯誤的任何其他方式?

退出代碼爲-1073740791,它表示「執行軟件中導致堆棧溢出的錯誤,導致軟件異常終止」。但是哪裏?

從事件日誌中的一些詳細信息:

錯誤模塊名稱:ucrtbase.DLL,版本:10.0.10240.16390,時間戳:0x55a5b718

異常代碼:0xc0000409

故障偏移:0x0000000000065a4e

enter image description here

+0

你試過JIT調試嗎?在HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows NT \ CurrentVersion \ AeDebug下有調試器的值嗎? – qxg

回答

0

你可以嘗試啓用user mode dumps

  1. 創建註冊表項HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
  2. LocalDumps,創建一個關鍵是你的可執行文件
  3. 在剛纔創建的鍵的名稱,設定值的DumpFolderDumpCountDumpTypeCustomDumpFlags作爲(你應該確定將DumpType設置爲2來完整轉儲,否則我認爲不會捕獲足夠的信息來調試託管轉儲)。

一旦你做到了這一點,當你的可執行文件崩潰轉儲文件將(默認或%LOCALAPPDATA%\CrashDumps)由DumpFolder指定的文件夾中創建。