2016-04-22 105 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指定的文件夹中创建。