c# .net visual-studio debugging heisenbug

c# - Programa y depurador abandonan sin indicación de problema



.net visual-studio (5)

El reinicio me arregló el problema.

Me encontré con el problema al intentar depurar a través de NUnit a través del corredor de prueba de Resharper y, por separado, intentar pasar por un proceso W3WP.exe.

De acuerdo, no es exactamente un Heisenbug pero tiene una naturaleza similar.

Estoy desarrollando una aplicación WPF. Cuando se depura, la lógica alcanza un cierto punto, luego la aplicación se cierra sin ningún motivo. El depurador VS no detecta nada y la única indicación de un problema es la siguiente en la ventana de salida:

El programa ''[6228] SomeApp.vshost.exe: Managed (v4.0.30319)'' salió con el código 1073741855 (0x4000001f).

Al depurar la versión de lanzamiento, o de hecho ejecutar la compilación de depuración del depurador (de hecho, todos los combos que no están ejecutando la versión de depuración en el depurador), todo funciona bien.

Estoy tratando de detectar excepciones no controladas con el siguiente código:

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

... pero no estoy atrapando nada.

Estoy considerando atacar la aplicación con declaraciones de salida de depuración, pero es muy asíncrona, por lo que leer esto será arduo y tedioso.

Entonces dime, si puedes ... ¿cómo empiezo a pensar que está sucediendo WTF?


Estaba experimentando el mismo problema. en mi caso, noté que tenía una propiedad con getter y setters. Mi error fue devolver la propiedad en sí en lugar del atributo vinculado a ella, y esto estaba forzando al depurador a ir a un ciclo infinito, después de solucionarlo, el problema fue resuelto. Obtuve el mismo código de error sin información adicional.


Según el archivo ntstatus.h, 0x4000001f (STATUS_WX86_BREAKPOINT) es un código de estado de excepción que utiliza el subsistema de emulación Win32 x86. Supongo que significa que llegó a un punto de interrupción que no es explotable. Debería habilitar la depuración del código no administrado.


Tengo la misma situación con Visual Studio 2013. Al igual que Ron, guarde My day: Project -> Properties -> Debug y apague "Enable the Visual Studio hosting process".

Gracias


Usando Visual Studio 2012 (Versión 11.0.50727.1 RTMREL), la única solución que encontré fue ir a Proyecto -> Propiedades -> Depurar y desactivar "Habilitar el proceso de alojamiento de Visual Studio".

La opción "Habilitar la depuración del código nativo" no ayudó aunque tenía todas las excepciones configuradas para romper cuando se lanza.

Curiosamente, este problema solo comenzó a suceder cuando actualicé desde VS2012 beta al lanzamiento oficial de VS2012.