好吧,不是Heisenbug,但性质相似.
我正在开发一个WPF应用程序.调试时,逻辑到达某一点,然后应用程序无缘无故退出.VS调试器没有捕获任何内容,输出窗口中的以下是问题的唯一指示:
程序'[6228] SomeApp.vshost.exe:Managed(v4.0.30319)'已退出,代码为1073741855(0x4000001f).
在调试发行版本时,或者确实从调试器运行调试版本时(事实上所有组合都没有在调试器中运行调试版本),一切正常.
我试图用以下代码捕获未处理的异常:
AppDomain
.CurrentDomain
.UnhandledException +=
(sender, e) =>
{
Debug.WriteLine("Unhandled Exception " + e.ExceptionObject);
};
Application
.Current
.DispatcherUnhandledException +=
(sender1, e1) =>
{
Debug.WriteLine("DispatcherUnhandledException " + e1.Exception);
};
Run Code Online (Sandbox Code Playgroud)
......但是我没有抓到任何东西.
我正在考虑使用调试输出语句来处理应用程序,但它是高度异步的,因此阅读这将是艰巨而乏味的.
所以告诉我,如果你能...我怎么开始计算WTF正在进行?