我正在开发 WPF 应用程序。调试的时候,逻辑到了某个点,然后应用程序无缘无故退出。 VS 调试器没有捕捉到任何问题,唯一的问题指示是输出窗口中的以下内容:
The program '[6228] SomeApp.vshost.exe: Managed (v4.0.30319)' has exited with code 1073741855 (0x4000001f).
当调试发布版本时,或者确实从调试器运行调试构建时(实际上所有未在调试器中运行调试版本的组合),一切正常。
我正在尝试使用以下代码捕获未处理的异常:
AppDomain
.CurrentDomain
.UnhandledException +=
(sender, e) =>
{
Debug.WriteLine("Unhandled Exception " + e.ExceptionObject);
};
Application
.Current
.DispatcherUnhandledException +=
(sender1, e1) =>
{
Debug.WriteLine("DispatcherUnhandledException " + e1.Exception);
};
...但我什么也没抓到。
我正在考虑在应用程序中加入调试输出语句,但它是高度异步的,因此阅读这篇文章既费力又乏味。
我如何开始弄清楚发生了什么?
最佳答案
根据 ntstatus.h 文件,0x4000001f (STATUS_WX86_BREAKPOINT) 是 Win32 x86 仿真子系统使用的异常状态代码。它(我想)意味着你到达了一个不可利用的断点。您应该启用调试非托管代码。
关于c# - 程序和调试器在没有出现问题的情况下退出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4532457/