没有问题的指示程序和调试器退出 [英] Program and debugger quit without indication of problem

查看:1847
本文介绍了没有问题的指示程序和调试器退出的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

确定,并不完全是Heisenbug,但性质相似。

OK, not quite a Heisenbug but similar in nature.

我正在开发一个WPF应用程序。调试时,逻辑达到某一点,然后退出应用程序没有任何理由。 VS调试器捕获什么,有问题的唯一迹象是以下在输出窗口:

I'm developing a WPF application. When debugging, the logic reaches a certain point, then the application quits for no reason. VS debugger catches nothing and the only indication of a problem is the following in the output window:

程序[6228] SomeApp.vshost.exe:托管(v4.0.30319)'。已退出与code 1073741855(0x4000001f)

The program '[6228] SomeApp.vshost.exe: Managed (v4.0.30319)' has exited with code 1073741855 (0x4000001f).

在调试的发行版本,或者确实运行调试打造出来的调试器(其实未运行调试版本的调试器的所有组合),一切工作正常的。

When debugging the release version, or indeed running the debug build out of the debugger (in fact all combos that aren't running the debug version in debugger), everything works fine.

我试图捕获未处理具有以下code例外情况:

I'm trying to catch unhandled exceptions with the following code:

        AppDomain
            .CurrentDomain
            .UnhandledException +=
            (sender, e) =>
            {
                Debug.WriteLine("Unhandled Exception " + e.ExceptionObject);
            };
        Application
            .Current
            .DispatcherUnhandledException +=
            (sender1, e1) =>
            {
                Debug.WriteLine("DispatcherUnhandledException " + e1.Exception);
            };

...但我不会一无所获。

...but I'm not catching anything.

我在考虑胡椒与调试输出语句的应用程序,但它的高度同步,以便阅读,这将是既艰苦和乏味。

I'm considering peppering the app with debug output statements, but it's highly asynchronous so reading this will be both arduous and tedious.

所以告诉我,如果你可以...我怎么开始盘算跆拳道是怎么回事?

So tell me, if you can... how do I start figuring WTF is going on?

推荐答案

据NTSTATUS.H文件,0x4000001f(STATUS_WX86_BREAKPOINT)是用于由Win32 x86的仿真子系统的异常状态code。它(我想)意味着你到达断点而不是利用。您应该启用非托管调试code。

According to ntstatus.h file, 0x4000001f (STATUS_WX86_BREAKPOINT) is an exception status code that is used by the Win32 x86 emulation subsystem. It (I suppose) means that you reached a breakpoint which is not exploitable. You should enable debugging unmanaged code.

这篇关于没有问题的指示程序和调试器退出的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆