程序和调试器退出而没有指示问题

spe*_*der 25 .net c# debugging visual-studio

好吧,不是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正在进行?

Vla*_*mir 33

根据ntstatus.h文件,0x4000001f(STATUS_WX86_BREAKPOINT)是Win32 x86仿真子系统使用的异常状态代码.它(我想)意味着你达到了一个不可利用的断点.您应该启用调试非托管代码.


Ron*_*Ron 13

使用Visual Studio 2012(版本11.0.50727.1 RTMREL),我找到的唯一解决方案是转到Project - > Properties - > Debug并关闭"启用Visual Studio托管过程".

"启用本机代码调试"选项没有帮助,即使我将所有异常设置为break-when-thrown.

有趣的是,当我从VS2012 beta升级到VS2012官方版本时,这个问题才开始发生.


Pac*_*eco 7

我与Visual Studio 2013具有相同的情况.像Ron这样保存我的一天:项目 - >属性 - >调试并关闭"启用Visual Studio托管过程".

谢谢