在应用程序退出期间调试崩溃 (WPF)
Debugging crash during app exit (WPF)
我想弄清楚为什么 WPF 应用程序不会在关闭时立即退出。使用 Process Explorer 我发现 WerFault.exe 在退出时启动,这似乎表明在拆卸过程中发生了某些崩溃,可能是某些析构函数或处置失败。当我最近切换到 VS2015 时,这种情况开始发生。我是运行Windows8.
我的问题是:如何找出真正的问题所在?有什么方法可以找到 WerFault.exe 的崩溃日志?我有数百个析构函数和处置方法,因此很难在所有的析构函数和处理方法中设置断点。在 VS 中捕获此类错误的任何其他方法?
退出代码是 -1073740791,"indicate a bug in the executed software that causes stack overflow, leading to abnormal termination of the software"。但是在哪里呢?
事件日志中的更多信息:
故障模块名称:ucrtbase.DLL,版本:10.0.10240.16390,时间戳:0x55a5b718
异常代码:0xc0000409
故障偏移量:0x0000000000065a4e
您可以尝试启用 user mode dumps:
- 创建注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
- 在
LocalDumps
中,创建一个作为可执行文件名称的键
- 在您刚刚创建的密钥中,根据需要设置
DumpFolder
、DumpCount
、DumpType
和 CustomDumpFlags
的值(您一定要设置 DumpType
到 2 用于完整转储,否则我认为不会捕获足够的信息来调试托管转储)。
完成此操作后,每当您的可执行文件崩溃时,都会在 DumpFolder
(或默认情况下 %LOCALAPPDATA%\CrashDumps
)指定的文件夹中创建一个转储文件。
我想弄清楚为什么 WPF 应用程序不会在关闭时立即退出。使用 Process Explorer 我发现 WerFault.exe 在退出时启动,这似乎表明在拆卸过程中发生了某些崩溃,可能是某些析构函数或处置失败。当我最近切换到 VS2015 时,这种情况开始发生。我是运行Windows8.
我的问题是:如何找出真正的问题所在?有什么方法可以找到 WerFault.exe 的崩溃日志?我有数百个析构函数和处置方法,因此很难在所有的析构函数和处理方法中设置断点。在 VS 中捕获此类错误的任何其他方法?
退出代码是 -1073740791,"indicate a bug in the executed software that causes stack overflow, leading to abnormal termination of the software"。但是在哪里呢?
事件日志中的更多信息:
故障模块名称:ucrtbase.DLL,版本:10.0.10240.16390,时间戳:0x55a5b718
异常代码:0xc0000409
故障偏移量:0x0000000000065a4e
您可以尝试启用 user mode dumps:
- 创建注册表项
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps
- 在
LocalDumps
中,创建一个作为可执行文件名称的键 - 在您刚刚创建的密钥中,根据需要设置
DumpFolder
、DumpCount
、DumpType
和CustomDumpFlags
的值(您一定要设置DumpType
到 2 用于完整转储,否则我认为不会捕获足够的信息来调试托管转储)。
完成此操作后,每当您的可执行文件崩溃时,都会在 DumpFolder
(或默认情况下 %LOCALAPPDATA%\CrashDumps
)指定的文件夹中创建一个转储文件。