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

由网友(你身上淡淡的人渣味)分享简介:确定,并不完全是Heisenbug,但性质相似。OK, not quite a Heisenbug but similar in nature.我正在开发一个WPF应用程序。调试时,逻辑达到某一点,然后退出应用程序没有任何理由。 VS调试器捕获什么,有问题的唯一迹象是以下在输出窗口:I'm developing...

确定,并不完全是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.

阅读全文

相关推荐

最新文章